Debian下使用apt-get安装 Nginx + MySQL + PHPMyAdmin 备忘
提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!
首先添加必要的apt源,并使用下面的命令使服务器保持最新:
apt-get update
apt-get upgrade
假设服务器没有配置Web服务和MySQL数据库,首先安装Web服务,这里首选Nginx:
apt-get install nginx
其次安装MySQL数据库,尝试使用下面的命令(其间可能需要交互输入密码):
apt-get install mysql-server
接下来简单介绍一下PHP的安装,这里使用FastCGI模式,仍然使用apt-get命令,配置来至 lowendscript ,其中部分配置对于小内存VPS进行了优化,建议按要求修改,例如PHP_FCGI_CHILDREN和PHP_FCGI_MAX_REQUESTS等参数值:
apt-get install php5-cgi php5-cli php5-mysql
# 以下参考至lowendscript小内存PHP配置
# https://github.com/lowendbox/lowendscript
cat > /etc/init.d/php-cgi <<END
#!/bin/bash
### BEGIN INIT INFO
# Provides: php-cgi
# Required-Start: networking
# Required-Stop: networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start the PHP FastCGI processes web server.
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME="php-cgi"
DESC="php-cgi"
PIDFILE="/var/run/www/php.pid"
FCGIPROGRAM="/usr/bin/php-cgi"
FCGISOCKET="/var/run/www/php.sock"
FCGIUSER="www-data"
FCGIGROUP="www-data"
if [ -e /etc/default/php-cgi ]
then
source /etc/default/php-cgi
fi
[ -z "\$PHP_FCGI_CHILDREN" ] && PHP_FCGI_CHILDREN=1
[ -z "\$PHP_FCGI_MAX_REQUESTS" ] && PHP_FCGI_MAX_REQUESTS=5000
ALLOWED_ENV="PATH USER PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS"
set -e
. /lib/lsb/init-functions
case "\$1" in
start)
unset E
for i in \${ALLOWED_ENV}; do
E="\${E} \${i}=\${!i}"
done
log_daemon_msg "Starting \$DESC" \$NAME
env - \${E} start-stop-daemon --start -x \$FCGIPROGRAM -p \$PIDFILE \\
-c \$FCGIUSER:\$FCGIGROUP -b -m -- -b \$FCGISOCKET
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping \$DESC" \$NAME
if start-stop-daemon --quiet --stop --oknodo --retry 30 \\
--pidfile \$PIDFILE --exec \$FCGIPROGRAM
then
rm -f \$PIDFILE
log_end_msg 0
else
log_end_msg 1
fi
;;
restart|force-reload)
\$0 stop
sleep 1
\$0 start
;;
*)
echo "Usage: \$0 {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
END
chmod 755 /etc/init.d/php-cgi
mkdir -p /var/run/www
chown www-data:www-data /var/run/www
cat > /etc/nginx/fastcgi_php <<END
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
if (-f \$request_filename) {
fastcgi_pass unix:/var/run/www/php.sock;
}
}
END
update-rc.d php-cgi defaults
invoke-rc.d php-cgi start
最后安装PHPMyAdmin,使用下面的命令安装:
apt-get install phpmyadmin
注意会提示你选择Apache或者lighttpd服务器,我们用的是Nginx,所以这里按Esc退出选择,然后会提示你输入数据库root密码,输入后按OK确定。
安装完成后,phpmyadmin所有代码文件都默认位于 /usr/share/phpmyadmin 路径下,假设我们的Web主路径位于 /var/www 下,接下来做个链接就可以了:
ln -s /usr/share/phpmyadmin/ /var/www/
最后建立Nginx配置文件:
cat > "/etc/nginx/sites-enabled/www.conf" <<END
server {
server_name example.com; # 你的域名
root /var/www;
include /etc/nginx/fastcgi_php;
location / {
index index.php;
}
}
END
好了,最后还有一步别忘记了,那就是重启php-cgi并让Nginx重新加载配置:
invoke-rc.d php-cgi restart
nginx -s reload
基本上步骤就是这样。
最近也在研究nginx, linux不熟 有问题还要请教一下
呵呵,共同学习,共同进步吧。我也是最近搞VPS才接触点Linux,也是新手,就知道点apt-get安装管理软件,再上网找找配置方面的文章,现在Linux有了软件包管理后,安装软件和配置都挺方便的,而且升级也容易,所以基本上都apt-get了。 现在真的不想再跟着微软后面做事了,争取以后全部用开源软件取代微软的商业软件。
安装软件时出来 perl:warning:setting locale faild ... 要不要紧,怎么能解决?
我觉得这个警告应该不影响Perl运行。你可以先运行locale命令,你可能会发现LANG、LANGUAGE以及LC_ALL值为空,也就是Perl的(unset)状态,解决这个问题就是要设置好这些环境变量。 建议先参考下面的文档: Perl官方的关于这个问题的修复策略,包含临时修复和永久修复 perllocale LOCALE PROBLEMS and fixing locale problems IBM对于该问题提供的解决方案 perl: warning: Setting locale failed 其他参考文档 locale的设定中LANG、LC_ALL、LANGUAGE环境变量的区别 如果需要更改locale,请运行命令sudo dpkg-reconfigure locales 对于用作VPS的Linux服务器,配置为en_US.UTF-8也就可以了,你可以先locale -a看下列出的集合。
可以将上面的命令写入启动配置文件,这样重启后会自动恢复配置。 仅供参考,建议还是依照上文中列出的Perl官方文档来做。呵呵,这么全面,谢谢了
老大,按照你的方法一步步的做,可是不行,我安装了nginx,mysql-server,php5,phpmyadmin都安装成功了 就是“PHP的安装,这里使用FastCGI模式,仍然使用apt-get命令,配置来”这个地方不懂,我跳过了,还有“建立Nginx配置文件”我没有写, 问题我用:IP/phpmyadmin访问出现“无法加载 mysqli (外链,英语) 扩展,请检查您的 PHP 配置。 - 文档” 能不能给我讲详细点啊,我最近才接触VPS,找了几天的资料了,还是没让网站运行起来
这里还是配置命令,主要是 apt-get install php5-cgi php5-cli php5-mysql (其余见原文,这里略) 你直接输入命令即可,难以理解的那段是
cat > /etc/init.d/php-cgi <...这句吧,其实这个是为了优化php-cgi占用资源而导入的配置,适合小型网站,可以略过。
另外下面这段是
当然如果你对小内存配置VPS感兴趣的话,可以参考这篇文章《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》,文章提供的lowendscript可以简化你的配置,或者参考类似“LNMP一键安装包”的自动化脚本,也是挺方便的。
老大,还是不行,LNMP一键安装包我安装过,可以成功的跑网站,《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》这个我也看过,但是安装过后数据库密码总是提示错误。不知道怎么解决,所以我现在是想学基本的,我想学着手动配制。能不能给个Q,教我一下
《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》这个密码是随机生成的,你可以通过下面的命令看到密码明文
我近期在外面学习,这两天可能不方便登录QQ,说实在的我现在也是半手动半自动的配置服务器的(我博客的VPS就是lowendscript配置),完全意义上的手动,我认为是要手动编译源代码的,但是这样不利于软件的管理和升级,大体上通过apt-get安装的顺序如下: 如果你对命令有了解的话可以参考lowendscript脚本内容,或者将现在流行的一键安装包下载下来阅读其间的命令代码,应该基本上都是能看懂的。 另外现在流行的除了php5-cgi外还有PHP FPM方式,这个稳定性好,负载大,就是较占用内存,安装命令是apt-get install php5-fpm
。 部分文档供参考《http://library.linode.com/web-servers/nginx/php-fastcgi/debian-6-squeeze》。 如果仍然有问题,等我回来再联系吧。我刚才又安装一次lowendscript脚本,MYSQL密码在.my.cnf里,可以看的到,我直接安装wordpress可以正常安装。于是我又安装一次系统,安装好lowendscript脚本后,我修改MYSQL密码。重启VPS,登陆后再安装,就出错了“mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)' ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)” 但是我用修改的新密码直接mysql -u root -p 然后输入新密码,可以登陆。但输入系统自动生成的那个密码就登陆不了了,用CAT查看.my.cnf文件密码还是系统生成的那个 为什么修改MYSQL密码后wordpress安装不上去了 还有,我如果想再添加一个域名,用织梦做网站呢?那该怎么办呢?
保存在.my.cnf的密码是利用lowendscript安装MySQL的初始root密码,当你修改过密码后,这个文件就没有作用了,MySQL不是通过这个文件来验证密码的,所以你修改过密码后应该用新密码登录。 而之前WordPress安装的话已经在wp-config.php的大概第21行和24行记录了连接MySQL所需要的密码了,当你更改过密码后,这部分也需要更新为你新的MySQL密码和MySQL用户名,否则WordPress会因为密码错误而无法连接MySQL数据库。 再添加一个域名的话,你需要修改Nginx配置,在/etc/nginx/sites-enabled路径下面添加配置文件example.conf(文件名任意),内容差不多这样:
或者完整的输入下面的命令并回车会帮助你更快的建立包含配置内容的文件:[...] Debian下使用apt-get安装 Nginx + MySQL + PHPMyAdmin 备忘 [...]