阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下搭建LAMP并把MySQL单独分离

154次阅读
没有评论

共计 9141 个字符,预计需要花费 23 分钟才能阅读完成。

环境:
系统:CentOS-7-x86_64-Minimal-1611
Apache:httpd-2.4.25.tar
MySQL:mysql-5.7.16.tar
php:php-5.6.30.tar
192.168.57.144:安装 MySQL
192.168.57.143:安装 Apache+php
 
搭建 LAMP 平台并实现 PHP 和 MySQL 读写分离 见  http://www.linuxidc.com/Linux/2017-05/144029.htm
创建相关目录
创建用户
解压安装包
编译安装
(初始化)
链接 bin 目录
拷贝脚本文件,主配置文件
配置主配置文件
脚本自启动
验证服务
验证对接服务
 
 
一·编译安装 Apache
 
yum install lrzsz
cd /usr/local/
tar -zxf httpd-2.4.25.tar.gz
 
yum install gcc*  gcc-c++*
yum install apr* apr-util apr-devel pcre* pcre-devel openssl* openssl-devel -y
 
编译安装
./configure –prefix=/apps/svr/httpd –enable-so –enable-rewrite –enable-charset-list  –enable-cgi
或者:
./configure                          \
        –prefix=/apps/svr/httpd  \
–sysconfdir=/apps/conf/\
        –enable-so                \
        –enable-ssl              \
        –enable-cgi              \
        –enable-rewrite          \
        –with-zlib                \
        –with-pcre                \
        –with-mpm=prefork        \
        –enable-modules=most      \
        –enable-mpms-shared=all 
echo $?
make
make install
 
配置 http 环境变量
ln -s /apps/svr/httpd/bin/* /usr/local/bin/
或者:cat >export PATH=$PATH:/apps/svr/httpd/bin >>/etc/profile
检查配置文件
apachectl -t
 
 
设置 apache 为 Linux 服务并实现开机自启动
cp /apps/svr/httpd/bin/apachectl /etc/init.d/httpd
或者:设置 Apache 为 Linux 服务并实现开机自启动 
mv /etc/rc.d/init.d/apachectl /etc/rc.d/init.d/httpd
chmod +x /etc/init.d/httpd
 
vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:2345 80 80
#description:httpd
#
 
chkconfig:2345 80 80
2345: 是服务识别参数,在级别 2345 中启动
第一个 80:是该服务在第 80 个启动
第二个 80:是该服务在第 80 个关闭
description:httpd      : 服务描述信息
 
chkconfig –add httpd
chkconfig httpd on
chkconfig –list httpd
 
 
cat /etc/hosts
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.57.141 www.a.org
 
 
cat  /apps/svr/httpd/conf/httpd.conf
#ServerName www.example.com:80
ServerName www.a.org
 
 
service  httpd restart
netstat -anpt |grep httpd
 
关闭数据库
systemctl stop firewalld
 
 
http://www.linuxidc.com/Linux/2017-05/144038.htm

编译安装 mysql-5.7.16
 
groupadd -r mysql
useradd -r -g mysql -s /bin/false -M mysql
 
创建 mysql 安装文件、数据库存储文件、my.cnf 文件
mkdir -p /apps/svr/mysql
mkdir -p /apps/mysqldb/data
mkdir -p /apps/conf
 
 
yum install -y gcc wget make cmake zlib-devel ncurses-devel bison gcc-c++ automake autoconf  imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses-devel libxml2-devel expat-devel openssl openssl-devel
 
下载 Boost_1_59_0.tar.gz
wget  http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar zxvf boost_1_59_0.tar.gz
 
下载 mysql-5.7.13.tar.gz
wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.13.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17.tar.gz
tar zxvf mysql-5.7.17.tar.gz
 
cd mysql-5.7.17
cmake . -DCMAKE_INSTALL_PREFIX=/apps/svr/mysql \
-DMYSQL_DATADIR=/apps/mysqldb/data \
-DSYSCONFDIR=/apps/conf/my.cnf \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
 
 
boost_1_59_0 解压放到 mysql 上层目录
 
———————————————————————————————————————————
-DCMAKE_INSTALL_PREFIX= 安装根目录
-DCMAKE_INSTALL_PREFIX=  unix 套接字目录
-DDEFAULT_CHARSET= 默认字符集
-DDEFAULT_COLLATION= 默认编码
-DWITH_EXTRA_CHARSETS= 额外的编码,请使用 ALL 来编译。
-DWITH_MYISAM_STORAGE_ENGINE=1  编译 myisam 存储引擎,默认的存储引擎,不加也可以
-DWITH_INNOBASE_STORAGE_ENGINE=1 支持 InnoDB 存储引擎,这个也是默认安装的
-DWITH_READLINE=1 使用 readline 功能
-DENABLED_LOCAL_INFILE=1 可以使用 load data infile 命令从本地导入文件
-DMYSQL_DATADIR= 数据库 数据目录
———————————————————————————————————————————
 
grep processor /proc/cpuinfo 个数 x2
 
make 或者:make -j $(grep processor /proc/cpuinfo |wc -l)
make install
 
 
cat >export PATH=$PATH:/apps/svr/mysql/bin >>/etc/profile
Source /etc/profile
或者:ln -s /apps/svr/mysql/bin /usr/local/bin
 
chown  -R mysql:mysql /apps/svr/mysql
chown -R mysql:mysql /apps/conf
chown -R mysql:mysql /apps/mysqldb
 
rm -rf /etc/my.cnf
 
导出配置文件 
cd mysql-5.7.16
cp support-files/my-default.cnf /apps/conf/my.cnf
cp support-files/my-default.cnf /etc/
 
 
初始化数据库
注:
1 之前版本 mysql_install_db 是在 mysql_basedir/script 下,5.7 放在了 mysql_install_db/bin 目录下, 且已被废弃
2  “–initialize” 会生成一个随机密码(~/.mysql_secret),而 ”–initialize-insecure” 不会生成密码
3  –datadir 目标目录下不能有数据文件
 
/apps/svr/mysql/bin/mysqld –initialize –user=mysql –basedir=/apps/svr/mysql/ –datadir=/apps/mysqldb/data/
 
初始化密码
 #root@localhost: Ml-&jsWy(7j)
 
 
配置 mysql 自动启动
Cp /apps/svr/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
Systemctl enable mysqld.service
或者
cp /apps/svr/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig mysqld on
 
 
 
* Mysqld.pid 文件让 mysql 用户有权限访问。
Vi /usr/lib/systemd/system/mysqld.service
改:PIDFile=/apps/svr/mysql/mysqld.pid
# Start main service
ExecStart=/apps/svr/mysql/bin/mysqld–daemonize–pid-file=/apps/conf/mysql5.7/mysqld.pid $MYSQLD_OPTS
 
dbrootpwd=oneinstack #数据库 root 密码
/usr/local/mysql/bin/mysql -e “grant all privileges on *.* to root@’127.0.0.1′ identified by \”$dbrootpwd\” with grant option;”
/usr/local/mysql/bin/mysql -e “grant all privileges on *.* to root@’localhost’ identified by \”$dbrootpwd\” with grant option;”
 
更改 mysql 登录 root 用户密码
mysqladmin -u root -p’Ml-&jsWy(7j)’ password ‘2Zs63oQbPxpKYFjn6tyj’
 
 
创建用户允许 143 远程(允许 php 链接)
grant all on *.* to root@192.168.57.143 identified by ‘123456’;
flush privileges;
 
show grants for root@192.168.57.143;
select user,host from mysql.user;
 
安装数据加密等扩展工具(如 libmcrypt、mhash、mcrypt)
      注意:这三个包 mcrypt 要最后安装
yum install libxml2 libxml2-devel bzip2-devel libcurl-devel -y
yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel libevent libevent-devel
 
./configure –prefix=/apps/svr/php/  \
–with-openssl \
–enable-mbstring \
–with-freetype-dir \
–with-jpeg-dir \
–with-png-dir \
–with-mysql \
–with-zlib \
–enable-xml \
–enable-sockets \
–with-apxs2=/apps/svr/httpd/bin/apxs \
–with-config-file-path=/apps/conf \
–with-bz2  \
–enable-maintainer-zts
 
make
make install
 
 
#–with-config-file-scan-dir=/apps/conf  \
#–with-libxml-dir=/usr \
#–with-mysqli=/usr/local/mysql/bin/mysql_config \
#–with-mysql 添加 mysql 模块
#  –with-apxs2=/usr/local/apache24/bin/apxs 表示编译成模块
#–enable-fpm 编译成 fastCGI
#  –enable-maintainer-zts  编译 fastCGI 不需要选项
 

配置 php.ini 文件:解压的安装包下
cp php.ini-development /apps/conf/php.ini
  设置配置文件路径 –with-config-file-path=/apps/conf \
short_open_tag = On
asp_tags = On
 
* 解析
short_open_tag
决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?>)。如果要和 XML 结合使用 PHP,可以禁用此选项以便于嵌入使用 <?xml ?>。否则还可以通过 PHP 来输出,例如:<?php echo ‘<?xml version=”1.0″‘; ?>。如果禁用了,必须使用 PHP 代码开始标志的完整形式(<?php ?>)。
注意: 本指令也会影响到缩写形式 <?=,它和 <? echo 等价。使用此缩写需要 short_open_tag 的值为 On。
asp_tags
除了通常的 <?php ?> 标志之外还允许使用 ASP 风格的标志 <% %>。这也包括了输出变量值的缩写 <%= $value %>。
注意: ASP 风格标志的支持是 3.0.4 版新加的
 
 
整合 apache 和 php
 
编译 Apache 配置文件 httpd.conf,以 Apache 支持 php。以及访问的主页面 index.php
vim /apps/conf/httpd.conf
 
添加支持 php 的主页
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
 
加载 php 程序模块文件
LoadModule php5_module        modules/libphp5.so
添加如下二行 apache 能识别 php 格式页面
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
 
 
查看配置文件是否有语法错误
httpd -t
Syntax OK
 
重启服务
service httpd restart
 
测试 PHP 与 Apache 是否正常连接
cd /apps/svr/httpd/htdocs/
vim index.php
<?php
phpinfo();
?>
 
 
整合 php 和 mysql
 
由于 mysql 和 php 不在同一台服务器,所以添加 php 的扩展模块
1、在 Apache+php 服务器上安装 mysql-devel
yum install mysql-devel -y
 
2、进入 php 解压包生成配置文件
cd /root/php-5.6.30/ext/mysql
执行 phpize 脚本生成 configure 文件
[root@client mysql]# pwd
/root/php-5.6.30/ext/mysql
[root@client mysql]# /apps/svr/php/bin/phpize
Configuring for:
PHP Api Version:        20131106
Zend Module Api No:      20131226
Zend Extension Api No:  220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
无法找到 autoconf。请检查您的 autoconf 安装和
$PHP_AUTOCONF 环境变量。然后,重新运行这个脚本。
(* 错误缺少 m4  autoconf 包 *)
yum install m4
yum install autoconf
 
3、配置 编译安装(安装完成之后再扩展块路径下生成一个 mysql.so 模块文件)
./configure –with-mysql –with-php-config=/apps/svr/php/bin/php-config
 
–with-mysql 添加 mysql 模块
–with-php-config=/apps/svr/php/bin/php-config 添加模块所需要的脚本位置
 
make
make install
spacer.gif
 
 
4、添加 mysql.so 模块到 php.ini 配置文件(/apps/conf/php.ini)
[root@client htdocs]# cat /apps/conf/php.ini |grep mysql.so
extension=/apps/svr/php/lib/php/extensions/no-debug-zts-20131226/mysql.so wKiom1kejiDi0kTlAAAzoQvJWYU480.png
 
测试 PHP 与 MySQL(默认 root 用户登录不需要密码)是否正常连接
vim index.php
<?php
$conn=mysql_connect(‘localhost’,’root’,”);
if ($conn)
echo “Success…”;
else
echo “Failure!!!”;
?>

下面关于 LAMP 相关 的内容你可能也喜欢

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

CentOS 7.2 yum 安装 LAMP 环境  http://www.linuxidc.com/Linux/2016-11/136766.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

CentOS7 下安装部署 LAMP 环境  http://www.linuxidc.com/Linux/2016-04/130653.htm

CentOS 7 上安装(LAMP)服务 Linux,Apache,MySQL,PHP  http://www.linuxidc.com/Linux/2017-05/143868.htm

Ubuntu Server 14.04 LTS 下搭建 LAMP 环境图文详解  http://www.linuxidc.com/Linux/2016-12/138758.htm

Ubuntu Server 16.04 下配置 LAMP 环境 http://www.linuxidc.com/Linux/2016-12/138757.htm

CentOS 6.7 编译安装 LAMP 详解 http://www.linuxidc.com/Linux/2017-03/141244.htm

Ubuntu 16.04 搭建 LAMP 开发环境 http://www.linuxidc.com/Linux/2016-10/136327.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-05/144037.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计9141字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中