第一部分
配置 LAMP 服务
不带服务面板的 vps 一般是不安装任何软件的, 都需要我们自己安装配置. 本文以此类为例, 从刚入手的状态开始配置.
本文以 Carstensz Pyramid Server VPS 主机为例,操作系统是CentOS 6.3,独立服务器操作方法与VPS相同。域名请做好DNS指向。
1. 说明
LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。
2. 准备工作
- 修改登录密码 : <<Linux 修改用户密码>>
- 修改时区及时间: <<修改 Linux 系统时区与时间>>
- 关闭多余 tty 通道 : <<CentOS 6 关闭多余tty通道>>
- 修改主机名: <<修改 Linux 主机名(hostname)>>
- 添加 yum 源并更新: <<CentOS 添加常用 yum 源>>
- 配置 iptables 防火墙, 开放必要端口: <<Linux vps iptables 防火墙配置>>
3. 安装 Apache
安装前先将 SELinux 改为 宽松模式(permissive) 或直接关闭, 如不修改某些php组件可能无法加载.
1 |
vi /etc/selinux/config |
找到 “SELINUX=enforcing”, 改为 “SELINUX=permissive” 或 “SELINUX=disable”
然后执行
1 2 |
setenforce 0 getenforce |
Apache 已经包含在 CentOS 软件包中了,你可以使用下面的命令轻松安装它:
1 |
yum install httpd |
系统会提示已需要安装的版本并自动安装,如有更新,系统会显示需要更新的版本。 如已经安装完毕将显示下述信息: Package httpd-2.2.3-22.el5.centos.2.i386 already installed and latest version Nothing to do 安装 Apache 后,你可以启动:
1 |
service httpd start |
可以查看运行状态:
1 |
service httpd status |
现在可以在浏览器中打开 http://domain.com(你的域名) 或 http://ip地址(VPS的IP地址),就可以看到 Apache 2 Test Page 页面, 如果无法访问, 请检查你的防火墙设置是否开放了相应端口。
如果是本地服务器,现在可以在浏览器中打开 http://localhost 或 http://127.0.0.1 ,看到 Apache 2 Test Page 页面。
修改配置文件:
1 |
vi /etc/httpd/conf/httpd.conf |
查找 ServerName 或直接加入
1 |
ServerName localhost:80 |
可以修改或添加侦听端口 80 -> 8080 :
1 2 3 |
#Listen 12.34.56.78:80 Listen 80 Listen 8080 |
启用 url 重写, 允许 .htaccess 文件覆盖主机配置, 同时禁止目录浏览
找到 <Directory “这里是你设置的web根目录”>, 将 AllowOverride None 改为 All
1 2 |
AllowOverride All Options -Indexes FollowSymLinks |
启用 gzip 压缩
首先确认 mod_deflate.so 模块是否已加载, 这是 apache 自带的模块.
1 |
LoadModule deflate_module modules/mod_deflate.so |
模块已加载. 下面添加配置项
这里使用最简单的配置, 仅对文本类型压缩
1 2 3 4 5 |
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/* DeflateCompressionLevel 9 SetOutputFilter DEFLATE </IfModule> |
更多的参数设置请参考 http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_deflate.html
你可以重启服务:
1 |
service httpd restart |
输入 ps -aux 查看 /usr/sbin/httpd 的执行用户与组, 一般为 apache apache
将 /var/www/html 文件夹的所有者改为 apache, 这样以后就不会遇到权限问题了.
1 |
chown -R apache:apache /var/www/html |
若要使 Apache 支持 https 访问, 请参考 <<Linux Apache ssl 设置>>
优化 Apache 请参考 <<Linux Apache 优化内存>>
接着继续再了解一下 apache2 这个版本的结构,这有助于我们配置应用:
/etc/httpd/conf/httpd.conf :最主要的配置文件;
/etc/httpd/conf.d/*.conf :这个是 CentOS 的特色,如果你不想修改原始配置文件 httpd.conf 的话,其他配置的在此独立配置,启动 apache 时,这个文件就会被读入到主要配置文件;
/usr/lib/httpd/modules :apache 支持很多的模块,您想要使用的模块默认都放置在此目录;
/var/www/html :这里是 CentOS 默认的“首页”目录;
/var/www/error :默认的系统错误信息,主机设置错误或浏览器端要求的数据错误,在浏览器上出现的错误提示就以这里的信息为主;
/var/www/icons :提供 apache 的一些小图标;
/var/www/cgi-bin :默认一些可执行的 CGI 程序放置的目录;
/var/log/httpd :日志文件目录,这里的文件很容易变的很大,需要提供足够的空间;
/usr/sbin/apachectl :这是 Apache 的主要执行文件,这个执行文件其实是 shell script ,它可以主动检测系统上的一些设置值,好让您启动 Apache 时更简单;
/usr/sbin/httpd :这是主要的 apache 的二进制文件;
/usr/bin/htpasswd :当您想登陆某些网页时,需要输入账号与密码。那么Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令实现的。
4. 安装 MySQL
5. 安装 PHP
使用下列命令来安装 PHP5 和 Apache 的 PHP5 模块:
1 |
yum install php |
然后重新启动 Apache :
1 |
service httpd restart |
这个安装比较简单,完成后可以测试一下。Apache 网站的默认文档的路径是 /var/www/html ,在这个目录里新建一个phpinfo.php文件,并且在浏览器中调用 http://vpsip/phpinfo.php 将会显示很多 PHP5 的安装信息。
PHP5 正在工作,你会看到很多模块都可以在 PHP5 中使用了,而 MySQL 并没有在这里被列出来,这意味着 PHP5 并不支持MySQL,你还需要安装 php-mysql 这个包。
6. 安装PHP组件,使 PHP 支持 MySQL
1 |
yum search php |
选择你所需的安装包,然后通过下列命令安装他们:
1 |
yum install php php-bcmath php-cli php-gd php-imap php-intl php-ldap php-mbstring php-mcrypt php-mysql php-odbc php-pdo php-pear php-pspell php-soap php-xml php-xmlrpc |
检查系统更新,然后安装更新,最后清理安装包。
1 2 3 |
yum check-update yum update yum clean all |
如果需要,可以编辑php.ini,一般不用改动
1 |
vi /etc/php.ini |
这里将允许上传的最大值改为8M.
1 2 |
post_max_size = 8M upload_max_filesize = 8M |
然后重新启动 Apache2 :
1 |
service httpd restart |
在浏览器中重新加载 http://vpsip/phpinfo.php 这个页面,你就能看到刚刚安装的 PHP和MySQL 模块。
7. 设置 Apache 和 MySQL 开机启动
1 2 3 4 5 6 7 |
chkconfig --levels 3 httpd on chkconfig --list httpd service httpd restart chkconfig --levels 3 mysqld on chkconfig --list mysqld service mysqld restart |
注意:“设置 Apache 和 MySQL 开机启动”这一步一定要做,否则是访问不了你的网站的。
8. 安装 unzip
这步很简单, 直接安装即可.
1 |
yum install unzip |
9. 安装 Zend Guard Loader
<<CentOS 安装 Zend Guard Loader>>
OK,一个 LAMP 服务器搭建完成。
第二部分
配置虚拟目录
1.将 html 目录的所有者改为 apache 帐户, 这样可避免程序执行时遇到的授权问题.
这是给网站根目录赋予写权限
1 |
chown -R apache:apache /var/www/html/ |
2.在 Apache 配置文件中添加你的虚拟机信息
1 |
vi /etc/httpd/conf/httpd.conf |
此为IPv4虚拟机配置,已包含rewrite信息,支持WordPress固定链接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost 67.123.122.21:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html ServerName www.abc.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common <Directory "/var/www/html"> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm index.php AllowOverride all Order Deny,Allow Allow from all </Directory> </VirtualHost> |
此为IPv6虚拟机配置,已包含rewrite信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost [2201:f676:2:382:0:123:1661:2]:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/html ServerName www.abc.com ErrorLog logs/dummy-host.example.com-error_log CustomLog logs/dummy-host.example.com-access_log common <Directory "/var/www/html"> Options FollowSymLinks IncludesNOEXEC Indexes DirectoryIndex index.html index.htm index.php AllowOverride all Order Deny,Allow Allow from all </Directory> </VirtualHost> |
确认Apache工作在Dual Stack模式:
1 |
netstat -tulpn | grep :80 |
第三部分
安装 vsFTP
就是配置麻烦才说难用。而且官方说明太简陋太模糊,很多不明不白。
一开始配置了各,只能匿名,然后网上找各种配置弄用系统用户登录,结果连匿名用户也登不上了,而原来的配置没有备份……彻底不会弄了。
其实很多linux的软件难的不是没图形界面,(win 的一大堆有图形界面的还不是一样不会用,)而是官方说明不够充分,用户不明白怎么用。其实没有系统说明是很多平台软件的通病,而一旦配置复杂点,用户就很难明白怎么用,除非是从一开始就一直在用。
vsftpd太难用了。
配置稍麻烦. 我觉得挺好用的.