源码编译安装 LNMP 环境虽然便于自定义,但是对于小型服务器来说,漫长的编译时间让人无法等待。如果能在 10 分钟内搞定环境安装,那就很好了。
1、配置yum源
CentOS 7 的 默认 yum 源里的软件包版本可能不是最新的,如果要安装最新的软件包就得配置下 yum 源。
配置 yum 源可以通过直接安装 rpm (Red Hat Package Manager) 包,或者修改 Repository,本文讲解通过安装 rpm 方式。
1.1、安装epel源
首先需要安装 EPEL ( Extra Packages for Enterprise Linux ) yum 源,用以解决部分依赖包不存在的问题.
yum -y install epel-release
一.停用防火墙
systemctl status firewalld.service
systemctl sttop firewalld.service
二.端口配置
netstat -lntp #查看端口
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent #删除端口
firewall-cmd --reload或firewall-cmd --complete-reload
三.安装nginx
1、安装LNMP之前要安装EPEL,以便安装源以外的软件,如Nginx,phpMyAdmin等。
yum install epel-release
提示:EPEL,即Extra Packages for Enterprise Linux,企业版linux附加包。这个软件仓库里有很多非常常用的软件,而且是专门针对RHEL设计的,对RHEL标准yum源是一个很好的补充,完全免费使用,由Fedora项目维护,所以如果你使用的是RHEL,或者CentOS,Scientific等RHEL系的linux,可以非常放心的使用EPEL的yum源。
安装Nginx
yum install nginx
systemctl start nginx #启动nginx
systemctl enable nginx #设置开机启动
注释:yum安装的nginx可以直接启动,不用写启动文件,编译安装的一般需要自己写启动文件,启动文件一般放在/etc/init.d目录下。安装完成后nginx配置文件会放在/etc/nginx目录下。启动文件放在/usr/sbin/nginx。
安装PHP7.2
yum -y remove php* # 卸载已安装的php
由于linux的yum源不存在php7.x,所以我们要更改yum源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum 安装php72w和各种拓展:
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-posix sqlite-devel
开启php-fpm
systemctl start php-fpm #开启php-fpm
systemctl enable php-fpm #开机自动启动
配置
A) 修改php.ini的配置
vim /etc/php.ini
cgi.fix_pathinfo=1 #将注释去掉,开启PHP的pathinfo伪静态功能。
max_execution_time = 0 #脚本运行的最长时间,默认30秒
max_input_time = 300#脚本可以消耗的时间,默认60秒
memory_limit = 256M#脚本运行最大消耗的内存,根据你的需求更改数值,默认128M
post_max_size = 100M #单提交的最大数据,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…默认8M
upload_max_filesize = 10M#上载文件的最大许可大小 ,默认2M
修改php-fpm的配置
vim /etc/php-fpm.d/www.conf
找到以下两行,解除注释
listen.owner = nobody
listen.group = nobody
找下以下两行,将各自的apache改为nginx
user = apache -> user = nginx
group = apache -> group = nginx
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name 服务器IP;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
index index.html index.php;
# expires 7d;
# try_files $uri /index.php$uri;
try_files $uri $uri/ /index.php?$query_string;
# if (!-e $request_filename) {
# rewrite ^(.*)$ /index.php?s=$1 last;
# break;
# }
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# include conf.d/php.ini;
}
安装phpmyadmin
wget https://files.phpmyadmin.net/phpMyAdmin/4.4.12/phpMyAdmin-4.4.12-all-languages.zip
unzip phpMyAdmin-4.4.12-all-languages.zip
mv phpMyAdmin-4.4.12-all-languages /usr/share/nginx/html/phpmyadmin
chown -R nginx.nginx /var/lib/php/session