LAMP编译安装
实验规划
-
linux OS:centos7.6
-
hostA ip:192.168.38.17
-
hostB ip:192.168.38.27
-
编译的软件版本:
httpd 2.4.41
php-fpm 7.3.10
mariadb 10.2.27 -
准备的软件版本如下:
-
hostA:
apr-1.7.0.tar.bz2
apr-util-1.6.1.tar.bz2
httpd-2.4.41.tar.gz
php-7.3.10.tar.xz -
hostB:
mariadb-10.2.27-linux-x86_64.tar.gz
-
Apache编译安装
1、准备安装环境
# yum install -y gcc pcre-devel openssl-devel expat-devel
2、解压缩
# tar xf apr-1.7.0.tar.bz2
# tar xf apr-util-1.6.1.tar.bz2
# tar xf httpd-2.4.41.tar.gz
3、以--with-included-apr方式安装httpd
# mv apr-1.7.0 httpd-2.4.41/srclib/apr
# mv apr-util-1.6.1 httpd-2.4.41/srclib/apr-util
4、切换目录:
# cd httpd-2.4.41/
5、configure
# ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
6、# make && make install
==>至此httpd编译安装完成,后续的善后工作处理
7、创建apache系统用户,供httpd和php-fpm使用
# groupadd -g 48 -o -r apache
# useradd -s /sbin/nologin -r -g 48 -u 48 -c "httpd server" apache
8、修改配置文件
# vim /app/httpd24/conf/httpd.conf
....
User apache
Group apache
9、修改PATH变量
# echo 'PATH=/app/httpd24/bin/:$PATH' > /etc/profile.d/httpd.sh
10.启动httpd
# apachectl start
php-fpm编译安装
基于模块方式安装php
-
基于模块方式编译安装php,目前使用不多
- 主要有**–withapxs2=/app/httpd24/bin/apxs**这个编译选项代表模块安装php
-
libxml2-devel bzip2-devel libmcrypt-devel (epel)
./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd
--with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --withfreetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxmldir=/usr --enable-xml --enable-sockets --withapxs2=/app/httpd24/bin/apxs --with-config-file-path=/etc --withconfig-file-scan-dir=/etc/php.d --enable-maintainer-zts --disablefileinfo
-
注意:php-7.0以上版本使用–enable-mysqlnd --with-mysqli=mysqlnd,原–with-mysql不再支持
-
为php提供配置文件
cp php.ini-production /etc/php.ini -
编辑apache配置文件httpd.conf,以使apache支持php
vim /etc/httpd24/conf/httpd.conf
①加二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
②定位至DirectoryIndex index.html
修改为DirectoryIndex index.php index.html
fastcgi方式编译安装php-fpm
- –enable-fpm以fastcgi方式编译php
1.提供编译安装环境
# yum install -y libxml2-devel bzip2-devel libmcrypt-devel (epel)
2.解压缩
# tar xf php-7.3.10.tar.xz
3.切换目录
# cd php-7.3.10/
4.configure
# ./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo
5.make && make install
# make && make install
6.复制php主配置文件 /etc/php.ini
# cd /data/php-7.3.10 这是在源码解压缩安装完成以后的php解压目录中
# cp php.ini-production /etc/php.ini
7.复制服务启动的service文件
# cd /data/php-7.3.10
# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
8.复制php-fpm.conf文件
# cd /app/php/etc/
# mv php-fpm.conf.default php-fpm.conf
9.复制www.conf配置文件
# cd /app/php/etc/
# mv php-fpm.d/www.conf.default php-fpm.d/www.conf
10.修改www.conf配置文件
# php-fpm.d/www.conf
user = apache
group = apache
11.启动php-fpm程序
# systemctl start php-fpm.service
将httpd和php-fpm关联
- 此处关联的意思是httpd本身不能处理php资源请求,需要php-fpm进程帮助处理php资源请求。
- 配置httpd支持php
# vim /app/httpd24/conf/httpd.conf
1.取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
2.修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
3.加下面四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
- 测试是否能处理php请求:
浏览器:http://192.168.38.17/test.php
mariadb的二进制安装
(1)准备用户
# groupadd -g 27 -o -r mysql
# useradd -s /sbin/nologin -r -d /data/mysql -g 27 -u 27 -c "mysql server" mysql
(2)准备数据目录
# mkdir /data/mysql -p
# chown mysql.mysql /data/mysql/
(3)解压缩
# tar xf mariadb-10.2.27-linux-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -s ./mariadb-10.2.27-linux-x86_64/ mysql
# chown -R root.root mysql/
(4)准备配置文件
# cp -b support-files/my-huge.cnf /etc/my.cnf
# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=on
(5)创建数据库文件
# yum install -y libaio
# /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql
(6)准备服务脚本,并启动服务
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
(7)PATH路径
# echo 'PATH=/usr/local/mysql/bin:$PATH' >/etc/profile.d/mysql.sh
# . /etc/profile.d/mysql.sh
==>二进制安装mariadb完成
测试:源码安装lamp部署discuz!
1.在hostB主机上数据库中创建discuz账户
mysql> grant all on *.* to discuz@'192.168.38.%' identified by 'centos';
2.解压discuz!
# unzip Discuz_X3.3_SC_UTF8.zip
3.将解压后的upload文件夹移动至主页
# mv upload/* /app/httpd24/htdocs/
4.对目录授权:
# setfacl -R -m u:apache:rwx /app/httpd24/htdocs/
5.浏览器:http://192.168.38.17/
discuz!安装向导
- discuz!安装向导
启用opcache加速
1.搜索含义opchche加速相关选项
# grep opcache /etc/php.ini
2.启用opcache加速器?
暂时没解决
3.源码编译安装选项:
可能是源码编译安装时未添加此选项导致的:--enable-opcache
与opcache相关选项:
zend_extension=opcache
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist
opcache.huge_code_pages=1