@lgh-dev
2020-02-07T15:47:23.000000Z
字数 4690
阅读 1983
Linux
# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# yum install nginx
# systemctl start nginx
访问你服务器的ip地址,如果出现nginx的欢迎界面,安装成功.
系统默认的配置文件在/etc/nginx路径下,使用改配置可以正确的运行nginx。如需自定义,修改nginx.conf
等文件即可。
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
php7
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
remi源默认并没有启动,可以通过修改repo文件来修改它。
# vim /etc/yum.repos.d/remi.repo
[remi]
......
enabled=1
[remi-php56]
......
enabled=1
# yum list | grep php
# 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-opcache
及 php-pecl-apcu
能有效的提高 php 执行速度。
如果需要安装php7,编辑/etc/yum.repos.d/remi-php70.repo
文件,启用相应的yum源。
# 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
命令查看
# php -v
PHP 5.6.32 (cli) (built: Oct 25 2017 06:49:52)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans
# vi /etc/php.ini
理论上配置一下时区就够了
date.timezone = Asia/Shanghai
如有其他的配置可以自行配置
vi /etc/php-fpm.d/www.conf
;默认情况下是apache
user= apache
group=apache
; 修改为配置php所属用户为nginx
user = nginx
group = nginx
# systemctl start php-fpm
# rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7.rpm
其他所有的rpm文件在这里找到: http://repo.mysql.com/
如果你需要安装MySQL5.6
# rpm -ivh http://repo.mysql.com/mysql-community-release-el7.rpm
# yum install mysql-community-server
# systemctl start mysqld
MySQL安装之后默认root密码不是为空了,会生成一个随机密码保存在root目录下
# cat /root/.mysql_secret
如果没有找到文件,可以查看MySQL的日志文件:
cat /var/log/mysqld.log
# [Note] A temporary password is generated for root@localhost: ******
如果上面的信息都查不到的话,我们可以使用忘记密码的解决方法
vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
意思就是跳过权限的验证
systemctl restart mysqld
按照如下所示修改root密码即可
# mysql -u root -p
输入前面看到密码即可。
现在mysql有密码强度验证,需要输入一个强一点的密码。
mysql> set password=password('NEWPASSWORD');
或者
update mysql.user set authentication_string=password('NEWPASSWORD') where user='root';
现在已经没有password字段了。
设置密码策略,复杂级别
mysql> set global validate_password_policy=0;
创建数据库并设置编码为 utf8,不然中文可能会乱码:
mysql > create database mydb default character set utf8 defa
ult collate utf8_general_ci;
新建用户有两种方式
> create user username@hostname identified by 'yourpassword';
> insert into mysql.user(host,user,password) value('hostname','username',password('yourpassword'));
> flush privileges;
MySQL给用户分配数据库(表)权限的命令可概括为
> grant 权限 on 数据库对象 to 用户
比如下面的
> grant all privileges on db.* to username@'%' identified by 密码;
> grant all privileges on db.table to username@'%';
查看当前用户权限或者其他用户的权限
> show grants;
> show grants for username@'%';
撤消用户的权限
revoke 与 grant 的语法类似,只需要把关键字 “to” 换成 “from” 即可:
> grant all on *.* to username@'%';
> revoke all on *.* from username@'%';
内容参考链接来源: https://github.com/nodejh/nodejh.github.io/issues/7
# vi /etc/my.cnf
# 注释掉 skip_grant_table
mysql的默认配置文件在/etc/my.cnf。
如果忘记密码,可以在最后添加一句skip-grant-tables,重启mysql之后登录就不需要账号密码了,然后再修改root密码。
网上有一篇介绍 Nginx 配置 PHP 的文章,感觉挺不错的,下面就是他最后给出的配置模版。
server {
listen 80;
server_name localhost
charset utf-8;
access_log /var/log/nginx/knowshare-access.log;
error_log /var/log/nginx/knowshare-error.log notice;
root /var/www; #配置的代码路径
index index.php index.html index.htm;
location / {
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
if (!-e $request_filename){
rewrite ^/(.*)$ /index.php last;
}
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort on;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 200;
fastcgi_read_timeout 200;
fastcgi_buffer_size 256k;
fastcgi_buffers 32 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
allow all;
}
}
在上面的设置中,我将 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安装优化小记