分类 博客 下的文章

在CentOS 7上搭建LNMP(linux,nginx,mysql/mariadb,php)环境

准备:
从centos7之后引入了systemctl的命令,需要先学习一下这个命令,后面的安装都是基于systemctl来的,这篇文章介绍的比较全面http://blog.csdn.net/u012486840/article/details/53161574,或者直接看http://man.linuxde.net/systemctl
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

开始安装:

安装Nginx
yum install nginx
按照提示,输入yes后开始安装。安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:
systemctl start nginx

检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。
systemctl status firewalld

最后将Nginx设置为开机启动:
systemctl enable nginx.service

安装MySQL(MariaDB)

MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢。在CentOS 7的软件仓库中,将MySQL更替为了MariaDB。其实在很多时候,可以不用安装,centos7已经自带了mariadb
yum install mariadb-server

安装完成之后,执行以下命令重启MariaDB服务:
systemctl start mariadb

MariaDB默认root密码为空,我们需要设置一下,执行脚本:
/usr/bin/mysql_secure_installation

这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。

首先提示输入当前的root密码:
Enter current password for root (enter for none):

初始root密码为空,我们直接敲回车进行下一步。
Set root password? [Y/n]

设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。
Remove anonymous users? [Y/n]

是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。
Disallow root login remotely? [Y/n]

是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。
Remove test database and access to it? [Y/n]

是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。
Reload privilege tables now? [Y/n]

是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。

完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:
mysql -uroot -p
按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。

最后我们将MariaDB设置为开机启动。
systemctl enable mariadb

安装PHP

我们可以直接使用yum安装PHP:
yum install php-fpm php-mysql

安装完成后我们将php-fpm启动:
systemctl start php-fpm

将php-fpm设置为开机启动:
systemctl enable php-fpm

php安装完成之后,需要设置一下php session的目录:
mkdir /var/lib/php/session/

这时php-fpm已经安装完毕,但是现在需要配置一下Nginx,在/etc/nginx/conf.d目录中新建一个名

为php.conf的文件,其内容为:

server {
	listen 80;
	server_name ciika.com www.ciika.com;

	location ~* \.(js|css|png|jpg|jpeg|bmp|gif|ico)$ {
		root /var/www/html/;
		log_not_found off;
		access_log off;
	}
	
	location ~ /{
		root /var/www/html/;
		fastcgi_pass 127.0.0.1:9000;
		try_files $uri $uri/ /index.php?$args;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include fastcgi_params;
	}
}

然后执行以下命令使我们的配置生效:
systemctl reload nginx

以上内容部分摘抄自网上,ciika本站是采用上面的方法安装成功的,亲测可用。之前是采用的apache,但是apache运行并不稳定,和mysql在一起经常造成mysql的进程自动被系统杀掉,采用nginx后,目前相对稳定。

wordpress固定连接出现404错误

在使用wordpress过程中,为了SEO优化,让URL更易于理解,通常是需要把URL连接语义化,如本文连接为:http://ciika.com/2016/11/wordpress-postname-404/,其中wordpress-postname-404基本上就能表达出本文的主题。

在wordpress后台,如图:

wordpress

如上图设置后,一般情况下回出现404,那么是需要修改apache的配置:

1.固定链接的目录结构需要 Apache服务器的mod_rewrite模块支持,所以在Apache配置文件httpd.conf中将 LoadModule rewrite_module modules/mod_rewrite.so设置为启用,参考路径为/etc/httpd/conf.modules.d/00-base.conf

2.修改Apache的配置文件,参考路径为:/etc/httpd/conf/httpd.conf,对于站点目录下(比喻我的网站根目录为/var/www/html)的AllowOverride None的参数设置为All。当然修改完配置后,一定要重启Apache服务。

<Directory "/var/www/html">
   
    Options Indexes FollowSymLinks

   
    AllowOverride All

   
    Require all granted
</Directory>