记录一下安装配置 Linux+Nginx+MySQL+PostgreSQL+Python+PHP 的过程。就是传说中的 LNMPPP~说白了就是 OS 使用 Linux, Web server 使用 Nginx, 支持Python和PHP,数据库支持PostgreSQL和MySQL。开始吧~ Linux Fedora 13(其他Linux发行版可能需要少许变动)
记录一下安装配置 Linux+Nginx+MySQL+PostgreSQL+Python+PHP 的过程。就是传说中的 LNMPPP~说白了就是 OS 使用 Linux, Web server 使用 Nginx, 支持Python和PHP,数据库支持PostgreSQL和MySQL。开始吧~
Linux
Fedora 13(其他Linux发行版可能需要少许变动) Copy after login
Nginx
安装
yum install nginx
Copy after login
添加到系统自动运行
chkconfig --levels 235 nginx on
Copy after login
启动
/etc/init.d/nginx start
Copy after login
Nginx 已经安装并启动,访问下 http://localhost/ 试一下吧
MySQL
安装
yum install mysql mysql-server
Copy after login
添加系统服务并启动
chkconfig --levels 235 mysqld on
Copy after login
启动
/etc/init.d/mysqld start
Copy after login
检查是否支持网络连接
netstat -tap | grep mysql
Copy after login
应该会看到这样的状态
netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 1376/mysqld
Copy after login
如果不是的话,需要修改/etc/my.cnf文件来启用网络连接支持, 将文件中 “#skip-networking” 的 “#” 去掉
重启mysql
/etc/init.d/mysqld restart
Copy after login
MySQL默认root用户的密码为空,需要给root设置密码(* 代表密码字符)
mysqladmin -u root password *****
Copy after login
PostgreSQL
安装
yum install postgresql postgresql-server
Copy after login
然后需要初始化
Service postgresql initdb
Copy after login
打开/var/lib/pgsql/data/pg_hba.conf文件,将Ipv4 local connections一栏中数据改为:
host all all 0.0.0.0 trust
Copy after login
添加远程连接,将/var/lib/pgsql/data/postgresql.conf中的listen_sddress和port的注释删除,并改为:
listen_address = '*'
port = 5432
Copy after login
[可选]安装postgresql管理工具pgadmin3
yum install pgadmin3
Copy after login
[可选]添加对python的支持
yum install python-psycopg2
Copy after login
Python
呃,其实 Fedora 自带的 Python 版本已经是比较新的了,只需要安装flup配置一下就ok了。
安装flup
sudo easy_install flup
Copy after login
更新 Nginx 配置文件 nginx.conf
server {
listen 80;
server_name localhost;
# site_media - folder in uri for static files
location /static {
root /var/www/static;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov) {
access_log off;
expires 30d;
}
location / {
# host and port to fastcgi server
fastcgi_pass 127.0.0.1:8000;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_pass_header Authorization;
fastcgi_intercept_errors off;
}
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log;
}
Copy after login
PHP
安装 PHP
yum install php-cli php-mysql php-pgsql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy
Copy after login
在 /etc/php.ini 文件中追加’cgi.fix_pathinfo=1’
更新 Nginx 配置文件 nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Copy after login
以 FCGI 方式在9000端口启动 PHP
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
Copy after login
每次手动启动很麻烦,可以直接把上面内容追加到 /etc/rc.local 文件实现自动启动。
EOF
原文地址:Fedora 配置 Nginx + MySQL PostgreSQL Python PHP(Fast, 感谢原作者分享。