LNMP-PHP安装
1、环境准备
1.1、下载软件
wget https://www.php.net/distributions/php-7.4.16.tar.gz
1.2、安装依赖包
yum install epel-release -y yum install gcc gcc-c++ freetype freetype-devel libpng libpng-devel libxml2-devel libmcrypt libmcrypt-devel mhash libxml2 libxml2-devel mcrypt \
zlib zlib-devel libjpeg libjpeg-devel sqlite-devel oniguruma oniguruma-devel expat-devel curl-devel openssl-devel -y
yum install mariadb mariadb-server mariadb-devel -y
1.3、创建用户和组
groupadd -g 666 www useradd -u 666 -g 666 www
2、源码方式-安装php
2.1、编译安装
2.1.1、安装
tar xf php-7.4.16.tar.gz && cd php-7.4.16 export php_version=php-7.4.16 ./configure --prefix=/usr/local/${php_version}/ \ --with-config-file-path=/usr/local/${php_version}/etc/ \ --with-mysqli \ --with-pdo-mysql \ --with-expat \ --with-jpeg \ --with-freetype \ --with-curl \ --with-zlib \ --with-openssl \ --enable-soap \ --enable-mbstring=all \ --enable-sockets \ --enable-gd \ --enable-fpm #Nginx需要的功能 make && make install ln -s /usr/local/php-7.4.16 /usr/local/php
2.1.2、配置环境变量
cat >/etc/profile.d/php.sh<<'EOF' export PHP_HOME=/usr/local/php export PATH=$PATH:${PHP_HOME}/bin:${PHP_HOME}/sbin EOF
2.1.3、查询版本
]# php -v PHP 7.4.16 (cli) (built: Apr 28 2023 17:26:44) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
2.2、配置文件
2.2.1、复制配置文件
php-7.4.16]# cp php.ini-production /usr/local/php-7.4.16/etc/php.ini
2.2.2、打开php-fpm.pid
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
]# cat /usr/local/php/etc/php-fpm.conf | grep -Ev "^;|^$" [global] pid = run/php-fpm.pid include=/usr/local/php-7.4.16/etc/php-fpm.d/*.conf
2.2.3、修改php-fpm运行用户、组和其它配置
mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf sed -i '/^user =/c user = www' /usr/local/php/etc/php-fpm.d/www.conf sed -i '/^group =/c group = www' /usr/local/php/etc/php-fpm.d/www.conf # 设置监听所有的IP地址 sed -i '/^listen =/c listen = 0.0.0.0:9000' /usr/local/php/etc/php-fpm.d/www.conf
2.3、设置开机自启
cat >/lib/systemd/system/php-fpm.service <<'EOF' [Unit] Description=The PHP FastCGI Process Manager After=syslog.target network.target [Service] Type=forking PIDFile=/usr/local/php/var/run/php-fpm.pid ExecStart=/usr/local/php/sbin/php-fpm ExecReload=/bin/kill -USR2 $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl start php-fpm systemctl enable php-fpm
2.4、检查端口9000是否开启
php ~]# netstat -tunlp | grep php tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 125535/php-fpm: mas
3、yum方式-安装php
3.1、添加epel第三方依赖库,安装YUM源
yum -y install epel-release yum-utils https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
3.2、安装PHP相关依赖库和模块
yum install -y php74-php php74-php-cli php74-php-common php74-php-devel \ php74-php-embedded php74-php-gd php74-php-mcrypt php74-php-mbstring php74-php-pdo \ php74-php-xml php74-php-fpm php74-php-mysqlnd php74-php-opcache php74-php-pecl-memcached \ php74-php-pecl-redis php74-php-pecl-mongodb
3.3、检查YUM安装是否成功
php --version #查看版本 php -m #查看安装模块,需要用到的模块,没有安装的需要YUM安装 systemctl enable --now php-fpm #设置开机启动,并启动。 ss -ntulp | grep php-fpm
3.4、优化PHP-FPM
3.4.1、调整PHP-FPM文件
vim /etc/php-fpm.conf log_level = error # 指定要记录的php-fpm日志级别 rlimit_files = 32768 # 为主进程设置打开文件的限制,虚拟机无法设置。 events.mechanism = epoll # 指定事件驱动模型
3.4.2、调整PHP.ini文件
隐藏后端使用的真正脚本类型,扰乱入侵者的渗透思路,另外,切记不要把敏感数据直接明文存在session中,有泄露风险。 vim /etc/php.ini error_reporting = E_WARING & ERROR #设置php的错误报告级别,只需要报告警告和错误即可 error_log = /tmp/php_errors.log #指定php错误日志存放位置 log_errors_max_len = 2048 #指定php错误日志的最大长度 expose_php = off #隐藏php的详细版本号 session.name = SESSIONID #修改sessionid名称 修改完配置文件需要重新启动才可以生效 systemctl restart php-fpm
3.5、安装其他扩展
wget http://pecl.php.net/get/swoole-4.4.23.tgz wget http://pecl.php.net/get/mongodb-1.8.2.tgz wget http://pecl.php.net/get/mongodb-1.5.4.tgz wget http://pecl.php.net/get/redis-4.3.0.tgz wget http://pecl.php.net/get/redis-5.2.2.tgz