|
|
0 I2 h$ i$ m. ]2 u- P+ b 
) t0 E3 z# }' @4 h& PLAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。. ~/ R/ A! m5 Q! c, w1 P, s. n
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。7 J, t8 s8 F6 ~7 x) g; i7 W
为什么选择 LAMP 一键安装脚本?- {& L9 ~& l) O- j
LAMP 是经典的建站环境,尤其适用于个人站长。 I/ j% }: k7 [5 o" @
本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。
8 ^. [- W: b# P6 p' P 安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
9 N; K4 q* ]$ B* K% J4 s9 { 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。: F& ~9 I8 Q! _* }
更新时间:2015 年 08 月 28 日# u ?5 Y/ M! Q& n6 f, X" l& o
$ |& D6 X8 @" s9 C# G8 _. S
程序目录: I8 t6 n) @ R* f
MySQL 安装目录: /usr/local/mysql
+ a W5 T& ~3 ]! @( ?1 X T# e0 f$ n MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)
; \$ k" d: a {! \) u MariaDB 安装目录: /usr/local/mariadb
+ c4 L: q( g) Q) p/ M7 m7 P MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
2 L1 F1 z, `% ]" j; d+ b" P, N PHP 安装目录: /usr/local/php
' }+ B6 ~( [& U) d( v' h% z Apache 安装目录: /usr/local/apache
" [/ e6 A2 {( k2 j0 J3 L- ~ phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)( g( _# L7 k; w% a3 N* I4 x: U9 X
网站目录:4 ?5 q" A% D1 o5 D' O! x& T( H
默认的网站根目录: /data/www/default( N% I- T# n$ B b" K! g
默认页位置: /data/www/default/index.html
5 y' A Q' F2 N3 S% \ 新建站点默认目录: /data/www/域名/web! u; E6 |7 K& G8 ]# U
phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)
/ f# u. s/ i _0 O9 l$ R phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)* @5 E* N5 K( U! R, A2 \3 F6 l3 o
xcache 后台地址: http://域名或ip/xcache/
9 q* N m7 P1 G0 x- {3 |: p* ] xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
8 k2 Z! E, v- M# |* i# o; | 配置文件:
4 L+ c' x8 f% p- W6 N4 O Apache 日志目录: /usr/local/apache/logs
: J* x$ w$ X. o# |( [, {9 u# R Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf6 h2 m( f$ G) y0 N
新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
& i. z7 }% F' ]2 @. [! ?4 X: _0 x2 h PHP 配置文件: /usr/local/php/etc/php.ini
# ?1 \7 }6 _) S" ]! ~ PHP 所有扩展配置文件目录: /usr/local/php/php.d/
/ e# S6 G' a" ~; x" E MySQL 配置文件: /etc/my.cnf
* k4 Y' f8 r, U0 ?( X9 e 命令一览:
) j- I; b7 A: G- i! y MySQL 或 MariaDB 命令:
! `1 m. g) F$ Z# ~+ b /etc/init.d/mysqld (start|stop|restart|status)! x! ]4 b" a$ |, o1 b: f+ M
Apache命令:2 n/ k" P7 n( h' F
/etc/init.d/httpd (start|stop|restart|status)
, U! P0 X& M% E: R' X" Z; U memcached; q2 l5 J& e/ ]" y
/etc/init.d/memcached (start|stop|restart|status)- `: c7 y( G& u9 R. S9 Z7 a; `
安装LAMP及建站简单流程:" I% W& |2 |4 g4 j; Q
1、安装 LAMP 环境
c5 z! J: i1 D9 L0 E) _; ]) A( N 2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)" V5 x, n$ `; y
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web! D% F5 P& l; ]& Y/ X1 ?# t/ ~
4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名4 I# I5 X) L, V& P2 D
5、运行网站安装程序完成网站安装2 O$ b) N+ o7 I
问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?
! b D1 X3 ?; i- v1 b 答:以 root 登录后,运行:chown -R apache:apache /data/www/域名( I. }4 K7 u6 ~/ |+ V0 u2 A' o4 ^: v
问2:安装时因内存不足报错,不能完成安装?
9 [* e0 N* s1 h% ^# H 答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。! j" O. a/ n: a& ^4 Y4 D9 a: W
更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
/ P: o' G! P' P同时还优化了安装过程中对内存的占用。
0 k. ?" X/ t& }2 u$ B9 G6 L& |备注:为什么写成 480 MB ?6 Q) `* X) H+ J, I Y5 r' [/ i. m8 Y
这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
+ @; B8 P" r ~3 {4 u 问3:域名跟 ip 地址都显示相同的网页,如何设置?* c5 C; E! S! V' ^& R8 X
答:这是因为域名没与 IP 绑定。! X. H: U. U6 x
修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
# v [6 j2 ?! e6 i" M8 J* x8 c 在此文件的第 1 行开始,追加以下虚拟主机的配置:8 J. ], E( j/ A' n( f' i% i
<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址1 A0 d& Z7 J) K% k
此处是用到了 301 永久重定向来达到目的。7 _* j2 J; g8 Y0 I% b
然后保存并重启 Apache,命令:/etc/init.d/httpd restart
/ x3 p) D4 g$ e: h1 w 问4:将 MySQL 换成 MariaDB ,应该怎么做?
/ Q4 s0 b# a' v$ R 答:+ Z b+ {5 q3 ~
1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
6 y; ~; p4 C }4 m9 `, I @3 \ 2、卸载 LAMP,命令:lamp uninstall* y% f* C$ p7 |& E* T$ Y( l
3、重新安装 LAMP,选择 MariaDB
6 q0 p- F$ [; \) n 4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump% ]6 @ E8 |9 l! q3 S+ r8 R! ^0 H
卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。
- G) V& L" ?2 O2 T 注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。3 q7 a) }; v1 v/ a3 l+ y7 D
问5:如何更改网站的默认目录?% a; y( Q4 ^# l/ w1 d) C* I# |
答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可3 ]( s8 X) R0 N
问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?
5 n2 F) U6 z# h/ x2 | 答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。" D- T% w& Q: |: @1 z9 p
如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。
0 q9 B' o5 `7 o* f2 n$ h 问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?$ o- F* F1 b& J1 l! k7 K
答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。4 Z' b u. N+ w- T* k4 | p
比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。
- G) f, W9 i/ U5 q6 { 修改示例: Q6 \* h$ f$ H) s6 ?8 c1 Y
ServerName www.ccc.com
6 n ^' Z4 t. D. y+ C- h0 q/ q1 ? ServerAlias ccc.com
( q' c8 N) z( ? 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?. o9 n5 P) N: H% v* g/ v
答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。
9 @; e! E+ v2 }) } MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。, L$ q j+ B) t. S; D s% l( [) L" _
因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data
3 [% q! R* w4 ~! _! a) P 当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:
9 A8 K7 d. v6 a0 }2 S5 B/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data
9 a1 x! t) u/ ^更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。1 L6 V+ j" v H- R+ o. S
问9:LAMP 能配合什么 Web 面板管理呢?
# f, |; a2 ?- Q' j 答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。
9 e+ E2 S- N8 W: Q 问10:请问 xcache 的后台怎么进去?
$ n. K" L& i9 _, ^2 u 答:http://域名或IP/xcache/
2 F! }$ @% _' ]" y; g2 [, m' h: W' y 用户名:admin
' T/ J& c1 B e 密码:123456. l+ M9 P5 w! c+ p/ s" C
前提是你安装了 xcache 后才能进入该后台。1 F: G: a) t3 B/ V
问11:如何修改 xcache 的后台用户名和密码?% d6 {/ F! I; G" H+ ~* @
答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。
4 f! v* m& N; N( `) `# M8 N. m 注意 xcache.admin.pass 的值是密码 md5 后的值。
1 O( |) ^) V8 i$ j8 P/ {0 Q 然后重启 Apache 即可。
) R4 u# y9 ^' I* g6 H' x n 问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?
+ j p! C7 ^9 B* f u p* g 答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。) N, b6 I3 k0 L9 y
删除已有的 PHP 步骤:
. W, B' w& k( B; X rm -rf /etc/php.ini /usr/bin/php* /usr/local/php7 v _: S6 o# B+ v) T ?, _
编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。( Q+ M4 E# G* k) J/ T% C" P% B
当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。
) P4 W/ k& G5 l 问13:安装以后要如何关闭日志功能?
3 D1 S5 B) R: L1 S' h% a8 @ 答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,2 H% r5 `3 U' U- x
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。
3 c" C9 Z) ]3 }* z0 h 问14:FTP 安装使用是怎样的?' i" X% Z0 K; M y u& g/ R" {
答:1、安装 LAMP 环境;: g [% ]% m, p+ D, E$ s
2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
! e0 d0 U/ l% D' k5 o 3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);5 V, A/ w7 }- h
4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
H4 z2 w1 P+ E 5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。
$ b+ p2 ~# x7 J3 P+ ]/ b 敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。
, f) J) w4 b$ r& T 因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。
9 f7 v6 M. e/ E6 T 问15:Apache 的 SSL 如何设置?( {& O; f0 m4 w9 O5 K2 O
答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。
/ e; d+ |; F0 w8 {. D7 v( M 还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。* r1 E7 s% C% p- Y
可以参考《Apache下部署ssl教程》一文。
, @6 z0 {* {- @ 问16:安装 PHP 时出现以下错误,怎么处理?$ a6 z; A" |; @# G
cc: Internal error: Killed (program cc1)
* R+ ?5 N2 Y$ n Please submit a full bug report.+ j( B8 Q8 B0 {7 l! l; @
See for instructions.
; X' y- l6 P2 e6 v: V9 y8 \0 y make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1# b2 i& p$ @$ }% v' e/ m8 p
Installing PHP failed, Please visit https://teddysun.com/lamp and contact.
, Y" @! {9 {- b$ K 答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
0 x' g4 T+ _8 W2 W- i 更多错误信息查询,参考《PHP编译安装常见错误总结》一文。
: \6 s- x$ U! ]2 k 问17:请问如何卸载组件呢,比如 xcache memcached?
7 w2 g) g; G8 _$ q! u$ H6 c1 v n 答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。 l' s5 n5 U& s9 t& e
比如安装了 PHP 5.4 的话: K/ p0 e7 l- Q
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so, j% B/ Q% i5 G7 J! \, ]1 ~) j
/usr/local/php/php.d/xcache.ini. [1 q3 l$ \. P( f+ H' [" P7 U
问18:怎么卸载 phpMyAdmin?
7 ^* X4 x7 Y# b. t/ o 答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。2 C7 V4 b, N. I6 u3 q2 B# k
默认安装位置是 /data/www/default/phpmyadmin/
" r* q) v' I2 \& i 问19:多个IP的VPS如何设置一个IP对应一个域名呢?% I' }6 q/ |- _/ U
答:按照以下步骤:7 b3 G! [$ u: [1 H5 q$ b; J" E: o D
1、创建虚拟主机,以域名命名;
+ z( p8 q$ v( d2 j4 U0 z 2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
X8 P& |1 \% [4 C! [: B 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。
% B+ j& s3 J7 s% d9 Z* R
5 i1 U# T5 P" A& p3 _ |
|