centos安装lnmp
配置防火墙,开启80,3306端口,加到22端口下边才有用
#vim /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
依赖库和开发工具
#yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
yum安装ngnix
新安装的Centos里边没有nginx包的话,要先处理下源:
#rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# yum check-update #更新yum软件包
#yum info nginx(查看centos里的nginx的信息)
#yum -y install nginx (安装nginx)
#chckconfig nginx on (设为开机自启动动)
#service nginx restart(重启,或者/etc/init.d/nginx restart )
可以: rm -rf /usr/share/nginx/html/* #删除ngin默认测试页,后续用index.php来作为默认的页面
安装Mysql
#yum install mysql mysql-server mysql-devel
#/etc/init.d/mysqld start 启动mysql
# chkconfig mysqld on (设为开机自启动)
#mysql -u root (设置密码,初始密码为空)
为roor账号修改密码
方法1:
mysql>USE mysql;
mysql>UPDATE user SET Password=PASSWORD('要设置的密码') WHERE user='root';
mysql> flush privileges;
Mysql> \q
方法2:
#mysql_secure_installation
输入原密码,输入新密码,重复新密码,一路输入Y,回车,最后出现Thanks for using MySQL!
则密码修改成功
允许远程登录,完成后就能用mysql-front(navcat mysql)远程管理mysql了
mysql -u root -p
Enter Password: <your new password>
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1224' WITH GRANT OPTION;
配置文件: /usr/share/mysql/my-medium.cnf
可以 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
安装Php
#yum install php
#yum install php-fpm
安装PHP组件,使PHP支持 MySQL、PHP支持FastCGI模式
# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm
#/etc/rc.d/init.d/php-fpm start #启动php-fpm
#chkconfig php-fpm on #设置开机启动
配置php-fpm
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #备份原有配置文件
vim/etc/nginx/nginx.conf
user nginx nginx; #修改nginx运行账号为:nginx组的nginx用户
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #备份原有配置文件
vim /etc/php-fpm.d/www.conf
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
#/etc/rc.d/init.d/php-fpm restart (service php-fpm restart)
#chkconfig php-fpm on 设置开机自启动
nginx 支持php (蓝色为修改的地方)
#cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #备份原有配置文件
#vim /etc/nginx/conf.d/default.conf
location / {
root /usr/share/nginx/html;(欢迎页面的文件处)
假如修改为 root /www
index index.html index.htm index.php;
}
去掉下边的注释,并修改fastcgi_param SCRIPT_FILENAME
# 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 /usr/share/nginx/html;$fastcgi_script_name;
include fastcgi_params; //fastcgi程序.
}
//注:默认的为 /usr/share/nginx/html,改成对应目录即可,以改为/www为例说明
location 定义文件类型, \.php$ 代表所有以 php 作为文件后缀的文件类型.
root 定义 php 文件存放的路径, 当前以 "/www 作为默认存放位置.
fastcgi_index 定义 php 文件类型中的默认索引页
fastcgi_param SCRIPT_FILENAME 定义了页面请求参数, 如客户端需要访问 /t1.php 则会自动读取 /www/t1.php文件, 如客户端访问 / 则自动读取 /www/index.php 文件
include 定义fastcgi 配置信息将会被保存到 /usr/share/nginx/html 文件中
nginx最常用的方法是利用 tcp/ip 协议连接 phpfastcgi 接口, 因此要连接php必须先启动fastcgi程序.
修改nginx配置参数后,使用nginx -t检查配置.
提示successfull后就可以使用 nginx -s reload来重新加载配置
重启niginx可能会提示:
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
意思是重复绑定了server name,但这个警告不会影响到服务器运行。而且,这个重复绑定的意思是现在运行的nginx服务和将要加载的新配置中的重复,所以,这个警告其实是不必的。
nginx可以在同一ip端口绑定多个域名。
我的解决办法是杀掉nginx进程重新启动,或者先去掉default_server设定,重新加载nginx配置后,再加上,再重新配置。
重启nginx,php-fpm。
测试一下:
在/usr/share/nginx/html下新建index.php
<?php echo phpinfo();
?>
浏览器输出 http://ip,即可看到phpinfo信息
题外话:
chown nginx.nginx /usr/share/nginx/html/ -R #设置目录所有者
chmod 700 /usr/share/nginx/html/ -R #设置目录权限
nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx /usr/share/nginx/html/ -R
MySQL数据库目录是:/var/lib/mysql
Mysql配置文件: /usr/share/mysql/my-medium.cnf
权限设置:chown mysql.mysql -R /var/lib/mysql
查看版本 nginx -v php -v
nginx本机hosts映射
和win下面一样,文件路径在/etc/hosts
Linux查找
查找文件 find -name haha.php
查找文件中的关键字:
grep [keyword] [路径] -R
还可以指定在哪一行
grep [keyword] [路径] -Rn
另外,如果查看ftp开启了什么权限的话,可以执行下面的命令:
getsebool -a | grep ftp