[关闭]
@lgh-dev 2020-02-07T15:47:23.000000Z 字数 4690 阅读 1843

Centos7上yum安装配置LNMP环境 [阿里云服务器]

Linux


安装Nginx

1、建立nginx的yum仓库

  1. # rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、下载并安装nginx

  1. # yum install nginx

3、启动nginx服务

  1. # systemctl start nginx

4、测试和配置

访问你服务器的ip地址,如果出现nginx的欢迎界面,安装成功.
系统默认的配置文件在/etc/nginx路径下,使用改配置可以正确的运行nginx。如需自定义,修改 nginx.conf 等文件即可。

安装php5.6

1、配置yum源

  1. # rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  2. php7
  3. # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

remi源默认并没有启动,可以通过修改repo文件来修改它。

  1. # vim /etc/yum.repos.d/remi.repo
  1. [remi]
  2. ......
  3. enabled=1
  4. [remi-php56]
  5. ......
  6. enabled=1

2、确认安装的php版本

  1. # yum list | grep php

3、安装php5.6

  1. # yum install php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common

上面这条命令安装了一大堆东西,实际请按需安装。启用 php-opcachephp-pecl-apcu 能有效的提高 php 执行速度。

3.1、安装php7

如果需要安装php7,编辑/etc/yum.repos.d/remi-php70.repo文件,启用相应的yum源。

  1. # yum -y install php71w-devel php71w-fpm php71w-opcache php71w-pecl-apcu php71w-devel php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-phpunit-PHPUnit php71w-pecl-xdebug php71w-pecl-xhprof php71w-pdo php71w-pear php71w-cli php71w-xml php71w-bcmath php71w-process php71w-gd php71w-common

安装相应的信息,扩展的话可以自己对应安装参照php5.6
php -m命令查看


4、确认php的版本

  1. # php -v
  2. PHP 5.6.32 (cli) (built: Oct 25 2017 06:49:52)
  3. Copyright (c) 1997-2016 The PHP Group
  4. Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
  5. with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
  6. with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

5、配置php.ini

  1. # vi /etc/php.ini

理论上配置一下时区就够了

  1. date.timezone = Asia/Shanghai

如有其他的配置可以自行配置


6、配置php-fpm

  1. vi /etc/php-fpm.d/www.conf

  1. ;默认情况下是apache
  2. user= apache
  3. group=apache
  4. ; 修改为配置php所属用户为nginx
  5. user = nginx
  6. group = nginx

7、启动php

  1. # systemctl start php-fpm

安装MySQL5.7

1、配置yum源

  1. # rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7.rpm

其他所有的rpm文件在这里找到: http://repo.mysql.com/

如果你需要安装MySQL5.6

  1. # rpm -ivh http://repo.mysql.com/mysql-community-release-el7.rpm

2、安装mysql

  1. # yum install mysql-community-server

3、启动mysql

  1. systemctl start mysqld

4、查看默认密码

MySQL安装之后默认root密码不是为空了,会生成一个随机密码保存在root目录下

  1. # cat /root/.mysql_secret

如果没有找到文件,可以查看MySQL的日志文件:

  1. cat /var/log/mysqld.log
  2. # [Note] A temporary password is generated for root@localhost: ******

如果上面的信息都查不到的话,我们可以使用忘记密码的解决方法

4.1 修改mysql的配置

  1. vim /etc/my.cnf
  2. 在[mysqld]的段中加上一句:skip-grant-tables
  3. 意思就是跳过权限的验证

4.2 重启mysql的服务

  1. systemctl restart mysqld

4.3 登录mysql设置密码

按照如下所示修改root密码即可

5、登录mysql

  1. # mysql -u root -p

输入前面看到密码即可。

6、修改root默认密码

现在mysql有密码强度验证,需要输入一个强一点的密码。

  1. mysql> set password=password('NEWPASSWORD');

或者

  1. update mysql.user set authentication_string=password('NEWPASSWORD') where user='root';

现在已经没有password字段了。

设置密码策略,复杂级别

  1. mysql> set global validate_password_policy=0;

7、创建数据库用户

创建数据库并设置编码为 utf8,不然中文可能会乱码:

  1. mysql > create database mydb default character set utf8 defa
  2. ult collate utf8_general_ci;

新建用户有两种方式

  1. > create user username@hostname identified by 'yourpassword';
  2. > insert into mysql.user(host,user,password) value('hostname','username',password('yourpassword'));
  3. > flush privileges;

MySQL给用户分配数据库(表)权限的命令可概括为

  1. > grant 权限 on 数据库对象 to 用户
  2. 比如下面的
  3. > grant all privileges on db.* to username@'%' identified by 密码;
  4. > grant all privileges on db.table to username@'%';

查看当前用户权限或者其他用户的权限

  1. > show grants;
  2. > show grants for username@'%';

撤消用户的权限
revoke 与 grant 的语法类似,只需要把关键字 “to” 换成 “from” 即可:

  1. > grant all on *.* to username@'%';
  2. > revoke all on *.* from username@'%';

内容参考链接来源: https://github.com/nodejh/nodejh.github.io/issues/7

7.1 取消安全模式

  1. # vi /etc/my.cnf
  2. # 注释掉 skip_grant_table

8、配置文件

mysql的默认配置文件在/etc/my.cnf。
如果忘记密码,可以在最后添加一句skip-grant-tables,重启mysql之后登录就不需要账号密码了,然后再修改root密码。

正确的配置Nginx+PHP

网上有一篇介绍 Nginx 配置 PHP 的文章,感觉挺不错的,下面就是他最后给出的配置模版。

  1. server {
  2. listen 80;
  3. server_name localhost
  4. charset utf-8;
  5. access_log /var/log/nginx/knowshare-access.log;
  6. error_log /var/log/nginx/knowshare-error.log notice;
  7. root /var/www; #配置的代码路径
  8. index index.php index.html index.htm;
  9. location / {
  10. autoindex on;
  11. autoindex_exact_size on;
  12. autoindex_localtime on;
  13. if (!-e $request_filename){
  14. rewrite ^/(.*)$ /index.php last;
  15. }
  16. }
  17. error_page 404 /404.html;
  18. error_page 500 502 503 504 /50x.html;
  19. location = /50x.html {
  20. root /usr/share/nginx/html;
  21. }
  22. location ~ \.php$ {
  23. fastcgi_pass 127.0.0.1:9000;
  24. fastcgi_index index.php;
  25. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  26. include fastcgi_params;
  27. fastcgi_intercept_errors on;
  28. fastcgi_ignore_client_abort on;
  29. fastcgi_connect_timeout 60;
  30. fastcgi_send_timeout 200;
  31. fastcgi_read_timeout 200;
  32. fastcgi_buffer_size 256k;
  33. fastcgi_buffers 32 256k;
  34. fastcgi_busy_buffers_size 256k;
  35. fastcgi_temp_file_write_size 256k;
  36. }
  37. # deny access to .htaccess files, if Apache's document root
  38. # concurs with nginx's one
  39. #
  40. location ~ /\.ht {
  41. allow all;
  42. }
  43. }

Nginx和PHP的安全性讨论

在上面的设置中,我将 Nginx 和 php-fpm 的运行用户都设置成为了 Nginx ,在这个情况下,如果网站目录的所有者也是 Nginx 的话,就会出现安全性问题。所以推荐将 Nginx 和 php-fpm 的用户都设置为 nobody。
详细说明可以看这篇文章:正确设置nginx/php-fpm/apache权限 提高网站安全性 防止被挂木马

来源链接:
1、如何正确配置Nginx+PHP
2、在CentOS7.0安装php5.6
3、How To Install Linux, Nginx, MySQL, PHP (LEMP) stack On CentOS 7
4、128M内存VPS LNMP安装优化小记

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注