|
|
& L( n4 X+ ?( z) F! B

) Z. X l0 g/ i2 ?2 zLAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。, k/ |0 ?9 ^; u+ M8 w9 E9 s& X; z! b
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。1 S* C r" r& V. f
为什么选择 LAMP 一键安装脚本?0 a, W/ [( L$ X0 \- b
LAMP 是经典的建站环境,尤其适用于个人站长。
! j/ C* T: p; b0 K 本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。5 ], C5 y0 g3 V8 I5 D9 Y
安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
" B" t: P1 x: J 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。% [) l* i: C8 V" T8 a) W! E, t) \; Q$ P
更新时间:2015 年 08 月 28 日
/ o/ z! ^* x: M , y j/ ^& y& _3 I& L7 k: D. B9 l
程序目录:
9 h; q; k# U' r5 a, e* L4 h MySQL 安装目录: /usr/local/mysql
! T6 h4 G; V+ ?! L5 i* n5 L MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)
3 n) c, {/ n \ x MariaDB 安装目录: /usr/local/mariadb6 l* i5 M6 o2 B) i$ }8 Y3 \
MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
' U/ O- T& t/ z' b' l; @, \ PHP 安装目录: /usr/local/php8 l- r+ A W: U8 q+ u& V0 X! }
Apache 安装目录: /usr/local/apache9 ^9 g8 ~# Q" V4 A9 N
phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)
$ { v- ~: } n6 B. O( e7 D 网站目录:
% R. x) h: y- o" p; M 默认的网站根目录: /data/www/default: l9 D& g- G, q' P2 P
默认页位置: /data/www/default/index.html. K; c! P6 r4 R; N% [4 ]2 D! J
新建站点默认目录: /data/www/域名/web
* |. N' n8 T8 M1 W/ X phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)
. d2 L+ m' `' h# i& b( b phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)8 h; t% G |7 B! n/ K( r5 _6 i) m
xcache 后台地址: http://域名或ip/xcache/
6 E6 ~% W( d! x$ t6 ] xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
4 O+ d# l: ~! s( l; N) P5 r# ? 配置文件:1 O# e& b5 P, c$ i' }% }
Apache 日志目录: /usr/local/apache/logs. B/ e7 K) f: |: F% ~/ q5 U6 W
Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf% A2 l8 O. ?6 t' y2 w
新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
# V. }' w' X6 @, U PHP 配置文件: /usr/local/php/etc/php.ini7 ]) x. x5 @$ P( O0 ^; l% i4 t
PHP 所有扩展配置文件目录: /usr/local/php/php.d/' i( Z! x! b0 h
MySQL 配置文件: /etc/my.cnf
U$ P' q! H6 A& k 命令一览:* t1 {* P6 q' J6 c8 R) U3 X# ~
MySQL 或 MariaDB 命令:# y3 A. D( m" ^' D8 b {
/etc/init.d/mysqld (start|stop|restart|status)6 H% q6 A+ ?/ g6 J, D5 o
Apache命令:4 R, A' r: S& F; R$ @' Y
/etc/init.d/httpd (start|stop|restart|status)7 a4 H; x3 ?$ m/ u/ ^
memcached9 W9 |2 V# Z+ g& X9 |- B
/etc/init.d/memcached (start|stop|restart|status)* Y# B. a& i/ Z- K4 [
安装LAMP及建站简单流程:
* ^+ q$ H2 [! f' i% { 1、安装 LAMP 环境
% n5 |$ P1 a8 O J2 b8 s 2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)- r3 \% H3 Q v9 C: o+ _$ |- A
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web
3 y0 J* v& r5 m 4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名" f7 K& D" w' B2 W* n4 }* e
5、运行网站安装程序完成网站安装
4 }7 _' C2 i( N7 l 问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?
: T, g" j$ n4 G: A z8 _& S# L c 答:以 root 登录后,运行:chown -R apache:apache /data/www/域名& L% D# I* I$ p" p5 h
问2:安装时因内存不足报错,不能完成安装?/ D% Y2 D- @( l: w9 c* g
答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。" ~. y3 g& [) O$ y$ }, b
更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
; B' z: w) f/ M* k I/ q同时还优化了安装过程中对内存的占用。
) A2 k- Q+ R* s+ F7 i备注:为什么写成 480 MB ?
" m4 m* O# M% s- S* d6 t* T& T这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
" e" c0 n7 B3 x- d6 T- l3 ~ 问3:域名跟 ip 地址都显示相同的网页,如何设置?
' W. t6 ~5 ?& G$ s1 t1 k$ F- S 答:这是因为域名没与 IP 绑定。5 ^% S. D r- `0 T. @& m
修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
! L' T7 S- J% B7 O 在此文件的第 1 行开始,追加以下虚拟主机的配置:
4 ^$ f/ _' R1 v% A5 f' g; u; C<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址4 q- m+ l; e7 u: O1 ?( R
此处是用到了 301 永久重定向来达到目的。2 s# I! s" A9 R2 G+ A7 ~/ @
然后保存并重启 Apache,命令:/etc/init.d/httpd restart
1 d/ ~) V% K8 h8 I 问4:将 MySQL 换成 MariaDB ,应该怎么做?8 I9 r; H& [3 J9 ] k+ L
答:
4 Z3 T, d C4 H5 V: X7 s 1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
% P9 S- K% ?# x 2、卸载 LAMP,命令:lamp uninstall
, ?' T( O% K( b2 Z: e; m% Z 3、重新安装 LAMP,选择 MariaDB" v! r# Q7 x( {. H
4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump6 o7 M" C) C: f$ k
卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。
5 I: H7 `. Q2 D 注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。8 b0 M+ U8 ^$ F& C9 p( G5 ^
问5:如何更改网站的默认目录?
; s; ?6 b& Z$ A( }" K1 \$ o: ^, A 答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可9 L: o" @% A3 o1 ]2 i7 E
问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?# C9 h5 v7 W6 a( D
答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。+ u* F; e# x6 J4 C- J- J8 o4 i
如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。1 R; r+ J+ Q o( {
问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?
a+ w& s4 h2 T k# X 答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。2 `3 S# i A* k8 J
比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。/ @* j: Y4 ~( j% d) J
修改示例:/ S s9 W @4 J6 f: o8 O
ServerName www.ccc.com
" [+ E3 }+ z4 l) z ServerAlias ccc.com
, [/ T2 ~3 J, N$ M 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?
2 j9 y8 ~ }1 A0 [' \, Y* v. D9 J 答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。9 k* y. P) L3 V$ x. e( P$ h
MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。1 D; J" s% J& Z1 Y# M
因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data% Q3 j" S; }7 V( r# _
当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:
2 a3 |, X# l. K4 Z/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data" s2 d- \! X# `5 l4 R8 L9 Z5 ] o
更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。. B/ f7 e! W P/ G- h1 ~- b6 ]
问9:LAMP 能配合什么 Web 面板管理呢?; u# R6 I0 t2 ~1 B5 U l) O
答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。
: ?8 d" B. L) L) B* l+ { D 问10:请问 xcache 的后台怎么进去?& a* `1 a$ h3 n1 W5 w
答:http://域名或IP/xcache/
2 X- Y5 r! s; @$ ~ 用户名:admin" R$ {9 y. O4 I- c$ M4 A
密码:123456
- O( e$ B) |& n9 e. `) t0 P% b- Z 前提是你安装了 xcache 后才能进入该后台。
3 S: z2 u1 J8 s6 X$ H 问11:如何修改 xcache 的后台用户名和密码?
" I* d% g# p$ V/ U& ?3 F' B9 F 答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。! u: k, E3 d5 L6 P) l8 b
注意 xcache.admin.pass 的值是密码 md5 后的值。
$ _9 k) I; f9 y/ s+ E 然后重启 Apache 即可。
: H$ a8 ?% C. o% K) v8 W5 d0 ^. A 问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?6 m& y8 T* X, B0 I1 v$ `4 S
答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。+ Q# N T& ]9 c" d9 k2 x/ Y2 e1 i
删除已有的 PHP 步骤:& c9 V# l- p9 g2 ]
rm -rf /etc/php.ini /usr/bin/php* /usr/local/php7 w9 A! N V r, A
编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。
3 X1 A. c. B6 k4 l, w' z 当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。4 v1 l3 U @5 g- F7 Q; P
问13:安装以后要如何关闭日志功能?
( i- }6 `- _1 |6 |& W 答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,& \" e. F& j1 \# c% E4 c9 _
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。/ k* L% G% Q8 q$ d8 @
问14:FTP 安装使用是怎样的?6 A7 v4 l Z2 g) r0 \4 @( V
答:1、安装 LAMP 环境;
" S1 o/ w5 ~# C& z6 r 2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
# O8 ?# O; K7 @! c5 q! M$ ? 3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);
G1 e& F9 ?; l' ]6 g$ e0 l6 e& v 4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据; U) `+ v. \3 ^3 t( L2 x# l
5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。% D, p9 {$ e9 U% c, ~6 ^' u5 u
敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。
) h0 _( D" D5 ^) f* S& H* }2 q 因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。
6 n7 O: A" U/ s; k& D. a 问15:Apache 的 SSL 如何设置?
4 g9 t) \& c7 Y. Y: t 答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。
8 I" M& b9 Q4 }5 ` 还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。( s _5 ^! w" Q$ q" x- ^
可以参考《Apache下部署ssl教程》一文。
9 U; S0 @) {5 ] 问16:安装 PHP 时出现以下错误,怎么处理?
/ J" M0 W8 O M$ s, g7 M! Z2 M cc: Internal error: Killed (program cc1)
% K* N. J) ?4 y& J Please submit a full bug report.
0 V2 j# m: W2 x% j5 e, ]+ j See for instructions.
5 F9 X# B7 j8 `1 v make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1+ _- q8 _; T8 y( m: [
Installing PHP failed, Please visit https://teddysun.com/lamp and contact.
+ G' n. A& F Q7 R% Z 答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
( @+ g, g5 `, I1 b5 D 更多错误信息查询,参考《PHP编译安装常见错误总结》一文。
3 \, J) Y( U: S7 J+ p 问17:请问如何卸载组件呢,比如 xcache memcached?
9 C3 e% N, B7 b, @ 答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。0 ?3 o/ ~9 N; S7 q9 d! N2 h# |
比如安装了 PHP 5.4 的话:7 h& J: k2 w6 J+ F% x
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
`4 M0 ], n& t /usr/local/php/php.d/xcache.ini0 e1 @% p$ ]7 u$ N
问18:怎么卸载 phpMyAdmin?
! X. r' G9 R( n O6 ]; Z2 y 答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。: ~7 Z8 _ R3 K3 p! \5 _
默认安装位置是 /data/www/default/phpmyadmin/2 i; F. B! C$ x+ D2 x: f
问19:多个IP的VPS如何设置一个IP对应一个域名呢?6 h( H$ @4 e$ o) c9 N* P) t% X7 o
答:按照以下步骤:
, x; a& V$ K/ M" u- e 1、创建虚拟主机,以域名命名;
* [, C( G p& e' n* T 2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
. i6 {# Z5 N4 {; B. v' N" M2 k. S 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。: N2 L! F$ x+ ^+ d, u2 i' Q
9 A: |7 M! v9 v4 } |
|