自行学习安装、配置LNMP


写在最前:此篇文章是耗时两天时间,自行搜索、试验、整理出来的,在此记录以备查看!同时感谢网络上所有乐于分享地人的分享!!如有任何误导请理解,并请指正!!

########################

系统环境

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

 

########################

 

########################

大功告成!!


发表评论