一、安装Nginx

1. 安装nginx依赖包

yum install gcc gcc-c++ kernel-devel

nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:

yum -y install pcre pcre-devel

nginx的各种模块中需要使用gzip压缩:

yum -y install zlib zlib-devel

安全套接字层密码库:

yum -y install openssl openssl-devel

2. 下载nginx包并解压(到/usr/local/src目录中)

cd /usr/local/src

wget http://nginx.org/download/nginx-1.12.2.tar.gz

tar -zxvf nginx-1.12.2.tar.gz

3. 编译安装(到/usr/local/nginx目录中)

cd nginx-1.12.2

./configure --prefix=/usr/local/nginx

make

make install

4. 创建并设置nginx运行账号:

groupadd nginx

useradd -M -g nginx -s /sbin/nologin nginx

cd /usr/local/nginx/conf

vim nginx.conf,设置user参数如下:

user nginx nginx;

其他配置参数暂时无需改动。

5. 设置nginx为系统服务

vim /lib/systemd/system/nginx.service

文件内容:

[Unit]

Description=nginx

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s stop

PrivateTmp=true

[Install]

WantedBy=multi-user.target

6. 设置nginx开机自启动

systemctl enable nginx.service

7. 开启nginx服务:

systemctl start nginx.service

查看nginx是否启动成功:

ps aux | grep nginx 或 systemctl status nginx.service

在虚拟机浏览器中访问测试:

http://localhost

出现以下界面则表示可以成功访问:

8. 防火墙开放80端口(nginx默认使用80端口,可在nginx.conf中配置,若无需进行远程访问则不需要开放端口)

永久开放80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙:

firewall-cmd --reload

查看防火墙开启状态:

systemctl status firewalld

查看80端口是否开放成功:

firewall-cmd --zone=public --query-port=80/tcp

可在windows宿主主机浏览器直接访问虚拟机ip测试是否可以成功访问。

二、安装Mysql

从CentOS 7.0发布以来,yum源中开始使用Mariadb来代替MySQL的安装。即使你输入的是yum install -y mysql , 显示的也是Mariadb的安装内容。使用源代码进行编译安装又太麻烦。因此,如果想使用yum安装MySQL的话,就需要去下载官方指定的yum源,网址为:https://dev.mysql.com/downloads/repo/yum/ 找到Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package,单击后面的Download,在新的页面中单击最下面的No thanks, just start my download.就可以下载到yum源了。

1. 首先进入本机的源文件目录

cd /usr/local/src

2. 使用wget下载官方yum源的rpm包:

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3. 安装rpm包:

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

4. 再次使用yum来安装mysql-server:

yum install -y mysql-server

可以看到这次不再提示安装Mariadb了

5. 安装完成后,启动mysqld服务:

systemctl start mysqld

查看是否成功启动:

ps aux|grep mysqld

6. 设置mysqld服务开机自启动:

systemctl enable mysqld

7. 使用初始密码登录

由于MySQL从5.7开始不允许首次安装后,使用空密码进行登录,系统会随机生成一个密码以供管理员首次登录使用,这个密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:

cat /var/log/mysqld.log|grep 'A temporary password'
2017-11-12T13:35:37.013617Z 1 [Note] A temporary password is generated for root@localhost: bkv,dy,)o7Ss

最后一行冒号后面的部分bkv,dy,)o7Ss就是初始密码。 

使用此密码登录MySQL:

mysql -u root -p

8. 更改默认密码:

修改root密码:

alter user 'root'@'localhost' identified by 'your_password';

将your_password替换成你自己的密码就可以了,当然,这个密码是强密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上。 

重新使用新的密码登录,如果可以正常登录说明你的MySQL已经成功安装在CentOS 7.4上了

三、安装PHP

1. 安装php依赖包

yum install libxml2 libxml2-devel curl curl-devel libpng libpng-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libxslt-devel gd-devel

2. 下载php包并解压

http://php.net/downloads.php
这里有7.0的与5.6.33的版本,我们选择.tar.gz的这个点进去,选一个节点,我们选择香港的地址如下
http://hk1.php.net/get/php-5.6.33.tar.gz/from/this/mirror

cd /usr/local/src

wget http://hk1.php.net/get/php-5.6.33.tar.gz/from/this/mirror

重命名

mv mirror php-5.6.33.tar.gz

tar -zxvf php-5.6.33.tar.gz

3. 编译安装(到/usr/local/php目录)

进入解压后目录

cd php-5.6.33

我们需要在安装的时候将安装目录配置到/usr/local/php/里

#./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip

上面就是些基本的参数配置和要加载的功能及模块安装路径等,保持默认就行

make(此过程需花费大概20分钟)

make install

4. php.ini配置

我们需要配置的是php.ini这个文件

安装目录有2个文件:php.ini-development和php.ini-production

php.ini-production 线上版本使用

php.ini-development 开发版本使用

我们选择development进行配置 当然如果的线上正式环境就使用正式的那个配置文件

cp php.ini-development /usr/local/php/lib/php.ini

vim /usr/local/php/lib/php.ini

找到short_open_tag = Off,修改为short_open_tag = On 开启短标签。

修改上传文件大小
找到 post_max_size = 8M 修改为 post_max_size = 80M
找到 upload_max_filesize= 2M 修改为 post_max_size = 20M
要保证 upload_max_filesize < post_max_size < memory_limit 否则不起作用。

找到date.timezone这行,更改如下date.timezone = Asia/Shanghai。

5. 创建并设置php-fpm运行账号

groupadd www-data

useradd -M -g www-data -s /sbin/nologin www-data

cd /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

搜索“user”设置运行账号:

user=www-data

group=www-data

6. 配置nginx支持php

vim /usr/local/nginx/conf/nginx.conf

重启nginx

systemctl reload nginx.service

7. 设置php-fpm为系统服务:

vim /etc/systemd/system/php-fpm.service

文件内容:

[Unit]

Description=php-fpm

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/php/sbin/php-fpm

PrivateTmp=true

[Install]

WantedBy=multi-user.target

8. 设置php-fpm服务开机自启动:

systemctl enable php-fpm.service

9. 启动php-fpm:

systemctl start php-fpm.service

查看是否启动成功:

ps aux | grep php-fpm 或 systemctl status php-fpm.service

10.写一个php脚本测试nginx是否已支持php,php是否已支持mysql。

phpinfo();

至此,LNMP搭建完成!

如果有问题,就可能是SELinux导致的 关闭SElinux:修改/etc/selinux/config文件中的SELINUX=””为disabled,然后重启。

Copyright © 2014-2024 it689.com (京ICP备12032795号-2) 版权所有 Power by IT689