如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
本来小屁打算直接写LNMP架构的(LB负载均衡+Nginx+mysql+PHP),但是发现之前用过的包是红帽的吗,在麒麟上没法直接部署PHP,所以小屁用两天的时间整理了一篇二进制部署PHP服务的技术文档,那话不多说,咱们直接开干~~~~
目录
一、安装依赖环境
二、安装oniguruma-6.9.4
三、下载安装libmcrypt
四、编译安装php
五、修改配置
六、修改Nginx
七、测试
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、安装依赖环境
[root@web01 ~]# yum -y install libtool sqlite-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
二、安装oniguruma-6.9.4
[root@web01 ~]#wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz
[root@web01 ~]#tar -xvf oniguruma-6.9.4.tar.gz
[root@web01 ~]#cd oniguruma-6.9.4/
[root@web01 oniguruma-6.9.4]#./autogen.sh && ./configure --prefix=/usr --libdir=/lib64
[root@web01 oniguruma-6.9.4]#make&&make instal
三、下载安装libmcrypt
[root@web01 ~]# wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@web01 ~]#tar xf libmcrypt-2.5.8.tar.gz
[root@web01 ~]#
[root@web01 ~]#cd libmcrypt-2.5.8
[root@web01 libmcrypt-2.5.8]#./configure --prefix=/usr/local/libmcrypt
发现报错:
原因是缺少c语言的编译环境
[root@web01 libmcrypt-2.5.8]#yum install gcc-c++ -y
安装即可
重新配置
[root@web01 libmcrypt-2.5.8]#./configure --prefix=/usr/local/libmcrypt
[root@web01 libmcrypt-2.5.8]#make && make install
四、编译安装php
[root@web01 ~]# tar -xvf php-7.4.33.tar.gz
[root@web01 ~]#cd php-7.4.33/
#编辑PHP的配置项
[root@web01 php-7.4.33]#./configure --prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx \
--enable-inline-optimization --disable-debug --disable-rpath \
--enable-shared --enable-soap --with-xmlrpc \
--with-openssl --with-mhash --with-sqlite3 \
--with-zlib --enable-bcmath --with-iconv --with-bz2 \
--enable-calendar --with-curl --with-cdb --enable-dom \
--enable-exif --enable-fileinfo --enable-filter \
--enable-ftp --with-openssl-dir --with-zlib-dir \
--enable-gd-jis-conv --with-gettext --with-gmp --with-mhash \
--enable-json --enable-mbstring --enable-mbregex \
--enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--with-zlib-dir --with-pdo-sqlite --with-readline --enable-session \
--enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg \
--enable-sysvsem --enable-sysvshm --with-xsl \
--enable-mysqlnd-compression-support --with-pear \
--enable-opcache --disable-fileinfo
#编译安装
[root@web01 php-7.4.33]#make -j 3 && make install
五、修改配置
#添加环境变量
[root@web01 php-7.4.33]#echo "export PATH=$PATH:/usr/local/php/bin" >> /etc/profile
[root@web01 php-7.4.33]#source /etc/profile
#准备配置文件
[root@web01 php-7.4.33]#cp php.ini-production /usr/local/php/etc/php.ini
[root@web01 php-7.4.33]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@web01 php-7.4.33]#cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
[root@web01 php-7.4.33]#ln -s /usr/local/php/etc/ /etc/php
#修改 /usr/local/php/etc/php-fpm.conf 运行用户和组改为nginx
[root@web01 php-7.4.33]#chown nginx.nginx /usr/local/php/etc/php-fpm.conf
[root@web01 php-7.4.33]#chown -R nginx.nginx /etc/php
#禁用PHP功能
[root@web01 php-7.4.33]#sed -i "s#disable_functions =#disable_functions =\"passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,wnam,posix_getpwuid, posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname\"#" /etc/php/php.ini
#支持mysql
[root@web01 php-7.4.33]#sed -i "s#pdo_mysql.default_socket=#pdo_mysql.default_socket=/var/lib/mysql/mysql.sock#" /etc/php/php.ini
[root@web01 php-7.4.33]#sed -i "s#mysqli.default_socket =#mysqli.default_socket =/var/lib/mysql/mysql.sock#" /etc/php/php.ini
#设置开机自启,并启动
[root@web01 php-7.4.33]#cp /root/php-7.4.33/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@web01 php-7.4.33]#chmod 755 /etc/init.d/php-fpm
[root@web01 php-7.4.33]#chkconfig php-fpm on
[root@web01 php-7.4.33]#systemctl start php-fpm
#查看PHP端口是否启动成功(默认9000)
root@web01 php-7.4.33]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1258/sshd: /usr/sbi
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 144397/php-fpm: mas
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7314/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1258/sshd: /usr/sbi
udp 0 0 127.0.0.1:323 0.0.0.0:* 740/chronyd
udp6 0 0 ::1:323 :::* 740/chronyd
[root@web01 php-7.4.33]#
六、修改Nginx
#修改nginx
[root@web01 nginx]#cp /etc/nginx/conf/nginx.conf{,.bak}
[root@web01 nginx]#vim /etc/nginx/conf/nginx.conf
...location / {root html;index index.html index.htm index.php; #添加 index.php}
...location ~ \.php$ {root /php/;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;#将/scripts$fastcgi_script_name修改为$document_root$fastcgi_script_name。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
...
#检查配置
[root@web01 nginx]#nginx -t
[root@web01 nginx]#nginx -s reload
七、测试
#测试
cat > /php/index.php <<eof
<?phpphpinfo();?>
eof
curl http://localhost/index.php
#浏览器访问测试
http://127.0.0.1/index.php
本来小屁在web界面也可访问的,但是应该是哪里配置有问题,只能curl到内容,下次直接搭建LNMP架构~~~~
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~