CentOS7快速搭建LNMP环境

名词解释

 

LNMP:Linux+Nginx+MySql+PHP
LAMP:LInux+Apache+MySql+PHP
Nginx的正确读法应该是Engine X
我们使用CentOS自带的YUM来安装


镜像源切换


先把YUM源切换成国内的镜像源
先备份一下原来的源镜像文件

# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo

#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

如果没有安装wget的话可以使用#yum install wget安装完成之后,在执行CentOS-Base.repo的安装
/etc/yum.repos.d/CentOS-Media.repo源文件配置文件,改为不生效

enable=0

YUM缓存生成

#yum clean all
#yum makecache
#yum update
 

安装Nginx


YUM源中没有Nginx,我们需要增加一个nginx的源nginx.repo

# vi /etc/yum.repos.d/nginx.repo

源文件的内容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

查看Nginx是否配置成功

#yum list nginx

已加载插件:fastestmirror
nginx                                                                           | 2.9 kB  00:00:00     
nginx/7/x86_64/primary_db                                                       |  18 kB  00:00:04     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
可安装的软件包
nginx.x86_64                                  1:1.10.2-1.el7.ngx                                  nginx
#yum list |grep nginx

nginx.x86_64                               1:1.10.2-1.el7.ngx          nginx    
nginx-debug.x86_64                         1:1.8.0-1.el7.ngx           nginx    
nginx-debuginfo.x86_64                     1:1.10.2-1.el7.ngx          nginx    
nginx-module-geoip.x86_64                  1:1.10.2-1.el7.ngx          nginx    
nginx-module-geoip-debuginfo.x86_64        1:1.10.2-1.el7.ngx          nginx    
nginx-module-image-filter.x86_64           1:1.10.2-1.el7.ngx          nginx    
nginx-module-image-filter-debuginfo.x86_64 1:1.10.2-1.el7.ngx          nginx    
nginx-module-njs.x86_64                    1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx
                                                                       nginx    
nginx-module-njs-debuginfo.x86_64          1:1.10.2.0.0.20160414.1c50334fbea6-2.el7.ngx
                                                                       nginx    
nginx-module-perl.x86_64                   1:1.10.2-1.el7.ngx          nginx    
nginx-module-perl-debuginfo.x86_64         1:1.10.2-1.el7.ngx          nginx    
nginx-module-xslt.x86_64                   1:1.10.2-1.el7.ngx          nginx    
nginx-module-xslt-debuginfo.x86_64         1:1.10.2-1.el7.ngx          nginx    
nginx-nr-agent.noarch                      2.0.0-10.el7.ngx            nginx    
pcp-pmda-nginx.x86_64                      3.10.6-2.el7                base 

安装成功后,就可以直接安装nginx了

#yum -y install nginx

安装的就是Nginx官网的最新版本

#nginx #启动Nginx

可以使用curl命令查看是否安装成功

#curl 127.0.0.1

如果安装成功的话,就会看到输出一个HTML的一个反馈




Welcome to nginx!



Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

开机启动设置

#systemctl enable nginx
#systemctl daemon-reload
 

安装MySql(5.7)


官网:http://dev.mysql.com/downloads/repo/yum/

#rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

查看5.7版本是否已经启用

#yum repolist all | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community         启用:    24
mysql-connectors-community-source MySQL Connectors Community - Sourc 禁用
mysql-tools-community/x86_64      MySQL Tools Community              启用:    38
mysql-tools-community-source      MySQL Tools Community - Source     禁用
mysql-tools-preview/x86_64        MySQL Tools Preview                禁用
mysql-tools-preview-source        MySQL Tools Preview - Source       禁用
mysql55-community/x86_64          MySQL 5.5 Community Server         禁用
mysql55-community-source          MySQL 5.5 Community Server - Sourc 禁用
mysql56-community/x86_64          MySQL 5.6 Community Server         禁用
mysql56-community-source          MySQL 5.6 Community Server - Sourc 禁用
mysql57-community/x86_64          MySQL 5.7 Community Server         启用:   146
mysql57-community-source          MySQL 5.7 Community Server - Sourc 禁用
mysql80-community/x86_64          MySQL 8.0 Community Server         禁用
mysql80-community-source          MySQL 8.0 Community Server - Sourc 禁用

如果没有启用的话,我们可以修改源文件

#/etc/yum.repos.d/mysql-community.repo

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

enabled改为1就可以了,其他的版本改为0


[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

修改完成之后查看可用的版本

#yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community                  24
mysql-tools-community/x86_64      MySQL Tools Community                       38
mysql57-community/x86_64          MySQL 5.7 Community Server                 146

如果看到5.7版本启用了之后就可以安装MySql了

#yum -y install mysql-community-server

安装完成之后,就可以启动mysql了

#service mysqld start

查看MySql的启动状态

#service mysqld status

Redirecting to /bin/systemctl status  mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2017-05-23 22:51:48 CST; 3min 14s ago
  Process: 36884 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 36810 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 36887 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─36887 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

5月 23 22:51:45 192.168.0.14 systemd[1]: Starting MySQL Server...
5月 23 22:51:48 192.168.0.14 systemd[1]: Started MySQL Server.
5月 23 22:52:24 192.168.0.14 systemd[1]: Started MySQL Server.

开机启动设置

#systemctl enable mysqld
#systemctl daemon-reload

MySql安装完成之后会在LOG文件(/var/log/mysqld.log)中生成一个root的默认密码

#grep 'temporary password' /var/log/mysqld.log

2017-05-23T14:51:45.705458Z 1 [Note] A temporary password is generated for root@localhost: d&sqr7dcf7P_

登录MySql并修改root密码

#mysql -uroot -p
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'new psd';

扩展阅读:mysql的密码策略

mysql>show variables like '%password%';

+---------------------------------------+--------+
| Variable_name                         | Value  |
+---------------------------------------+--------+
| default_password_lifetime             | 0      |
| disconnect_on_expired_password        | ON     |
| log_builtin_as_identified_by_password | OFF    |
| mysql_native_password_proxy_users     | OFF    |
| old_passwords                         | 0      |
| report_password                       |        |
| sha256_password_proxy_users           | OFF    |
| validate_password_check_user_name     | OFF    |
| validate_password_dictionary_file     |        |
| validate_password_length              | 8      |
| validate_password_mixed_case_count    | 1      |
| validate_password_number_count        | 1      |
| validate_password_policy              | MEDIUM |
| validate_password_special_char_count  | 1      |
+---------------------------------------+--------+
14 rows in set (0.01 sec)

默认的密码策略

validate_password_policy:密码策略,默认为MEDIUM策略 
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要 
validate_password_length:密码最少长度 
validate_password_mixed_case_count:大小写字符长度,至少1个 
validate_password_number_count :数字至少1个 
validate_password_special_char_count:特殊字符至少1个 

修改密码策略
/etc/my.cnf文件添加validate_password_policy配置

# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
validate_password_policy=0

修改默认编码
/etc/my.cnf配置文件的[mysqld]下添加编码配置:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重启mysql,是修改生效

#systemctl restart mysqld

远程登录用户添加

mysql> GRANT ALL PRIVILEGES ON . TO 'lmc'@'%' IDENTIFIED BY '1qazXsw@' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

查看用户

mysql> select host,user from mysql.user;

+-----------+-----------+
| host      | user      |
+-----------+-----------+
| %         | lmc       |
| localhost | mysql.sys |
| localhost | root      |
+-----------+-----------+
3 rows in set (0.00 sec)

由于开始没有关闭SELinux,引起mysql连接失败的解决:
http://www.jianshu.com/p/ddd3ce15cb84
 


安装PHP7

#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

安装PHP7

#yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

安装php-fpm

#yum install php70w-fpm php70w-opcache

启动php-fpm

#systemctl start php-fpm

开机启动设置

#systemctl enable php-fpm
#systemctl daemon-reload

修改根目录
修改 /etc/nginx/conf.d/default.conf


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;
    }

重启Nginx使修改生效

 

作者:890624
博客转自:https://www.jianshu.com/p/02baa54283ba
來源:简书

 

 

 

 

你可能感兴趣的:(Linux)