写在最前:此篇文章是耗时两天时间,自行搜索、试验、整理出来的,在此记录以备查看!同时感谢网络上所有乐于分享地人的分享!!如有任何误导请理解,并请指正!!
原文链接:http://www.513624.com/archives/910.html
########################
系统环境
Centos 6.5 64位纯净系统
########################
更新第三方源和系统
安装centos第三方yum源(CentOS默认的标准源里没有nginx软件包)
yum install wget #安装下载工具wget
wget http://www.atomicorp.com/installers/atomic #下载atomic yum源
sh ./atomic #安装
yum check-update #更新yum软件包
yum update #更新系统
########################
安装MySQL
yum install mysql mysql-server #输入Y即可自动安装,直到安装完成
/etc/init.d/mysqld start #启动MySQL
chkconfig mysqld on #设为开机启动
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件
(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可(命令-f))
为root账户设置密码
mysql_secure_installation
#
回车,根据提示输入Y,输入2次密码,回车,根据提示一路输入Y,最后出现:Thanks for using MySQL!
MySql密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld restart #重启
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
########################
安装nginx
yum install nginx #安装nginx,根据提示,输入Y安装
service nginx start #启动
chkconfig nginx on #设为开机启动
########################
安装php+php扩展+fpm
yum install php php-cli php-curl php-fpm php-intl php-mcrypt php-mysqlnd php-gd php-mbstring php-xml php-dom
/etc/rc.d/init.d/php-fpm start #启动php-fpm
chkconfig php-fpm on #设置开机启动
/etc/init.d/php-fpm restart #重启pfm
########################
配置nginx支持php
1,cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
#备份原有配置文件
vi /etc/nginx/nginx.conf #编辑
user nginx nginx; #修改nginx运行账号为:nginx组的nginx用户
:wq #保存退出
2,cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak
#备份原有配置文件
vi /etc/nginx/conf.d/default.conf #编辑
index index.php index.html index.htm; #增加index.php
取消FastCGI server部分location的注释,如下所示:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name;
include fastcgi_params;
#注意fastcgi_param行的参数,/scripts$fastcgi_script_name改为$document_root$fastcgi_script_name,或者使用绝对路径,要不然浏览器访问,不能解析,会显示“ File not found.”
service nginx restart #重启nginx
########################
php
配置
vi /etc/php.ini #编辑
1, date.timezone = PRC
#在946行 把前面的分号去掉,改为date.timezone = PRC
#(命令:vi +/date.timezone /etc/php.ini)
2, disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,osix_getrlimit, posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
########################
配置php-fpm
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak
#备份原有配置文件
vi /etc/php-fpm.d/www.conf #编辑
user = nginx #修改用户为nginx
group = nginx #修改组为nginx
:wq #保存退出
########################
安装FTP
1、查看是否安装了 vsftpd
rpm -qa | grep vsftpd
2、CentOS系统使用yum方式安装 vsftpd
yum install vsftpd
3、安装完成后,设置开始自动启动
chkconfig vsftpd on
service vsftpd start
4、查看ftp端口是否在侦听了
netstat –tl
5、配置vsftpd
vi /etc/vsftpd/vsftpd.conf #编辑
将anonymous_enable=YES 改为
anonymous_enable=NO #不允许匿名用户访问
在下面添加一行:
chroot_local_user=YES
表示把FTP用户都限制在你设置的目录中
注意:(vsftpd的配置文件有三个,分别是
/etc/vsftpd/vsftpd.conf
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
其中,/etc/vsftpd/vsftpd.conf是主配置文件。
/etc/vsftpd.ftpusers中指定了哪些用户不能访问FTP服务器。
/etc/vsftpd.user_list中指定的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器,当在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list中指定的用户访问FTP服务器。
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#设置不能登陆FTP的用户)
6、设置FTP目录(自行修改目录,本次测试目录是/usr/share/nginx/html)
mkdir /usr/share/nginx/html //创建FTP目录
chmod -R 777 /usr/share/nginx/html //递归地给此目录下所有文件和子目录的读、写、执行权限
chgrp -R ftp /usr/share/nginx/html //递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组
注:如果在ftp用户的主目录中的子目录无法进行上传、删除等操作,需要重新使用 chmod 命令授权,比如:chmod -R 777 /home/ftproot/子目录
7、增加FTP用户
adduser -d /home/ftproot -g ftp -s /sbin/nologin user
增加用户,组是FTP,目录是/home/ftproot (注意将user 改为你要设置的用户名,下同),为FTP用户设定密码
passwd user
输入两次密码
8、重启vsftpd
service vsftpd restart
9、FTP用户管理
userdel 选项 用户名 #删除用户。
常用的选项是-r,它的作用是把用户的主目录一起删除。
例如: userdel –r cmhello 表示删除cmhello这个ftp用户,同时删除cmhello上传的主目录
passwd 选项 用户名 #修改口令
passwd -l 用户名 锁定口令,即禁用账号。
passwd -u 用户名 口令解锁。
passwd -d 用户名 使账号无口令。
passwd -f 用户名 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
如果是超级用户,可以用下列形式指定任何用户的口令:
passwd 用户名
passwd -d 用户名 此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令
########################
配置phpmyadmin
下载phpmyadmin到/usr/share/nginx/html下,然后解压访问(可以官网下载,之后通过ftp上传到相应目录),会出现类似这样的错误提示:
phpMyAdmin – ErrorCannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.
从错误提示看到,php没有正确保存session。导致上面的错误提示原因在于没有给php正确设置session的临时目录导致。
在php.ini文件搜索查找session.save_path
(命令:vi +/session.save_path /etc/php.ini)
php.ini文件中显示 session.save_path = “N;/path”
需要将它修改为
session.save_path = "/var/lib/php/session"
修改/var/lib/php/session目录的所有权和属主
chown -R nobody:nobody /var/lib/php/session
修改此目录的属主为nobody
解决登录问题还应该修改/var/lib/php/session目录权限
chmod 777 /var/lib/php/session
然后重新启动php和nginx到服务即可正常登录phpMyAdmin,
phpmyadmin需要配置权限为755,不然会提示配置错误。
########################
绑定域名
cd /etc/nginx/conf.d # Nginx配置文件存放目录
vi default.conf #编辑
#修改相关条目
server {
listen 80;
server_name bjjcmy.com; #绑定域名
index index.htm index.html index.php; #默认文件
root /usr/share/nginx/html; #网站根目录
rewrite ^/(.*) http://www.bjjcmy.com/$1 permanent; #301跳转(可选)
error_page 404 /404.html; #404页面
include *.conf; #调用其他规则(可选)
}
注:一个文件添加多个域名的规则也是一样,把单个域名重复写下来就ok了
Service nginx restart #重启nginx
########################
安装网站程序
正常通过ftp上传网站程序WordPress
登陆phpmyadmin新建数据库+用户名
安装
########################
WordPress nginx
伪静态
vi *.conf #编辑站点的配置文件
#在location / { } 之间添加如下代码:
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
Service nginx restart #重启nginx
########################
WordPress
自动升级失败
文件权限问题
现象:点击更新提示,要求输入FTP账号、密码什么的,linux主机较多出现。
原因:出现这个提示,一般是指文件夹没有写入权限。
处理方案:赋予网站目录nginx用户权限:
命令是chown -R nginx /usr/share/nginx/html #本次配置的用户是nginx
########################
########################
大功告成!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。