|
|
5 d. B2 K1 w7 ]" l3 l6 r5 J4 E p* U9 K$ M/ P; n5 R
LAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。: {' U& l1 t9 E' \
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。: d7 \1 e$ Z) } z |4 w B, |
为什么选择 LAMP 一键安装脚本?! m$ D7 a9 C9 s, l
LAMP 是经典的建站环境,尤其适用于个人站长。$ O3 P; O9 A& s) Z% C4 }
本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。4 g8 H$ d$ J* z3 U
安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
4 d/ z( ?0 [! U2 O ` 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。8 L" J5 \1 x! h* a9 o
更新时间:2015 年 08 月 28 日9 U8 w5 B9 t8 x" {) z- ]
+ m% K( P' y& i( g/ _% C8 w7 H 程序目录:
$ C/ k) v( b& S0 H4 J4 d) ] MySQL 安装目录: /usr/local/mysql; }3 Q$ i! E- J* L6 K- g& V
MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)) U- F( N5 e# C h. \
MariaDB 安装目录: /usr/local/mariadb
0 L' M- z* ~$ Y6 k1 E) m# G ` MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改): |' ?" a2 Z" ~: r' e+ ?
PHP 安装目录: /usr/local/php
/ a) K4 K1 g2 \. [ Apache 安装目录: /usr/local/apache6 d- \ y: E+ P7 h1 g* U- d
phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)( r+ f/ @) }: ^* m
网站目录:
; K+ N; ~5 }$ c6 @) u6 i# @+ A$ F 默认的网站根目录: /data/www/default
7 h8 [& d' b: z0 U 默认页位置: /data/www/default/index.html
- x+ [" L7 `' f2 E* ~9 @1 w 新建站点默认目录: /data/www/域名/web. I9 O5 L& Z; i" a/ l3 @% U
phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)
4 q+ Z: F7 A1 ~3 ~% e7 d phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)
! ?% A3 M- D _ xcache 后台地址: http://域名或ip/xcache/
, k. J. E" x0 P xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
( v" W* Y# l, `" @ 配置文件:
m+ I( O& o/ i8 D+ M/ ^5 s Apache 日志目录: /usr/local/apache/logs- r9 p. X2 F# l" q1 |% {# L/ `; M
Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf+ {4 A6 X3 _: M1 h# u) _) ~$ ]& {
新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf' F# ?, E' Q& U b- N' q
PHP 配置文件: /usr/local/php/etc/php.ini( F$ H$ N1 y4 C" q4 f6 ?$ x
PHP 所有扩展配置文件目录: /usr/local/php/php.d/ w) L4 D: |/ M8 O$ b
MySQL 配置文件: /etc/my.cnf
: c* r( D6 M0 u 命令一览:( D3 L; N9 `* ~: d, Q& _
MySQL 或 MariaDB 命令:2 I/ R8 U% ?, @+ q" ~
/etc/init.d/mysqld (start|stop|restart|status)
3 W* n" [( m& j4 E% A) P2 p Apache命令:
+ g( H f* e) s d8 B /etc/init.d/httpd (start|stop|restart|status). V- R1 N9 ]! Y) J- l) a
memcached; a7 B+ }& S/ j. `9 r g; P- n
/etc/init.d/memcached (start|stop|restart|status)8 t9 T0 e, k- A# F$ a
安装LAMP及建站简单流程:' Y8 S) I# J/ ^
1、安装 LAMP 环境0 Y1 E9 g2 {8 V+ H7 p0 M6 t
2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)) ?- I4 M+ d0 ^/ b! y9 D# }0 y
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web
! r: _$ u) h% {6 l. i; B: k 4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名
3 V6 X) r9 }' T 5、运行网站安装程序完成网站安装0 r2 D# {9 l" n: L! s% Q
问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?
0 K& [6 C+ q5 p! M5 t9 w 答:以 root 登录后,运行:chown -R apache:apache /data/www/域名0 @" Q/ [# J6 }8 u1 S* h
问2:安装时因内存不足报错,不能完成安装?
7 Z* r" w8 k4 t2 J# V3 i 答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。' |6 @: \4 O0 f5 v$ y
更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
$ Q* o: B2 {1 M* F( O同时还优化了安装过程中对内存的占用。# x1 n. r0 i7 x5 N3 z
备注:为什么写成 480 MB ?
; ^& R) W6 d( J8 z这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
; z' V- P! R; j' O' n 问3:域名跟 ip 地址都显示相同的网页,如何设置?1 Z. V$ K* f! e. h- U( {
答:这是因为域名没与 IP 绑定。
: u* E: P1 y" E% g: ?4 v 修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
: z. \/ X, v/ L- k# f7 m. N 在此文件的第 1 行开始,追加以下虚拟主机的配置:+ G# S5 B. X! b; T
<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址
+ B( i5 l' n8 Z d. ^! P7 l; h. \ 此处是用到了 301 永久重定向来达到目的。
0 Z$ @# r: i" X0 n, c 然后保存并重启 Apache,命令:/etc/init.d/httpd restart! i) H' h _% H0 \9 Z( j! n
问4:将 MySQL 换成 MariaDB ,应该怎么做?3 ]9 v2 U2 D: P9 W* k1 J# q, a) `
答:' b! ~7 d' x/ b' L) J6 c" K8 j2 V
1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
& `' S$ U! @/ o9 f& R8 ]1 q 2、卸载 LAMP,命令:lamp uninstall! Z" m4 S" m h: [0 N' _
3、重新安装 LAMP,选择 MariaDB
3 u: n( L8 D3 ]: r! O ^ 4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump
! F* D( H0 W& y6 ]* H! f2 h 卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。
k# z5 R4 A6 Q8 Q3 q2 M 注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。, m1 y$ w/ X$ H$ f v7 }3 W" }/ H
问5:如何更改网站的默认目录?; m+ j2 O* O* V' z7 i9 p
答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可
# q. Q$ D5 ~& `+ {* U 问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?) [: a2 E. B" ]6 n* d( r# Y" o. R
答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。9 R F4 Z7 p1 O' k
如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。% y. i t5 J. @& ]+ Y$ K" n
问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?
3 l) Z9 n1 }( A 答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。
8 o7 U* y1 u; W `' \' q 比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。5 [3 v8 P9 [2 p9 U7 U
修改示例:% X! h& y( Q4 J+ ~( H$ }
ServerName www.ccc.com
- B% l3 t5 [; a ServerAlias ccc.com& M' t' x' {1 u. k7 m9 @( r" Y
问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?
; y1 D* ?, |% P9 ` 答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。; B( K1 e# \1 b* N/ K
MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。
8 h+ j# \+ m3 H- p" ~ 因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data& M$ Z3 ^ T- X
当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:
) M5 e9 b0 x1 E/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data
/ L* }. k- u1 k% U7 q更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。, Z! B# B) e/ v8 \2 ~7 D
问9:LAMP 能配合什么 Web 面板管理呢?
7 Q! F7 d' |4 I2 b( B/ ?. M 答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。5 H( P0 T) l A2 Z* C1 _0 p: g+ k
问10:请问 xcache 的后台怎么进去?
2 i) f0 [2 T0 @6 u5 m# d 答:http://域名或IP/xcache/
3 j# k1 N7 E8 `0 q 用户名:admin! D u* C! p! n6 K1 J( C8 M% B
密码:123456
* X+ d; |% y7 M t0 z- ?& s. r 前提是你安装了 xcache 后才能进入该后台。
& y- _) m) V ~8 L! i 问11:如何修改 xcache 的后台用户名和密码?- a) ^1 T* t6 ^) C; x
答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。, C) q5 s- t; b3 A3 w
注意 xcache.admin.pass 的值是密码 md5 后的值。0 w; L) E) g8 b$ X8 R) g
然后重启 Apache 即可。; V, ?2 m6 [" Z
问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?
! q, f0 C4 q, H4 A 答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。
0 Z8 K1 O; a& T$ S 删除已有的 PHP 步骤:) }. a% F- ]4 |3 S6 z
rm -rf /etc/php.ini /usr/bin/php* /usr/local/php
1 f$ d2 r0 [& ]/ e) ^' g8 Q1 Q: \ 编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。
; s5 j; D3 F( { 当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。
j! i4 p1 a7 [/ g4 D) b 问13:安装以后要如何关闭日志功能?
1 o3 e- X2 G0 t2 N/ b( h1 S 答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,8 u$ [1 w6 v9 y" r6 s
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。4 k6 c! U9 L( O
问14:FTP 安装使用是怎样的?
- L b! u, v% f) L( B1 o$ P 答:1、安装 LAMP 环境;
8 ?$ ~. y$ X2 s1 K5 R 2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
; S5 d/ E. o3 C' I6 Y$ P 3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);
0 P( s" U$ V) p1 n7 p; u 4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;: Q0 F5 k. U! b
5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。' W. H2 ?! E! n
敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。
, n0 D# u! i" q# j8 K: D+ b 因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。# Q! L9 q5 g+ D. ~3 @, E
问15:Apache 的 SSL 如何设置?9 Z0 W- p( i2 I" Q; Z8 H; c
答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。. `! w% a9 z3 n
还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。* y& z T' D Z8 ^
可以参考《Apache下部署ssl教程》一文。
) [: K6 c5 Y4 w; j9 O+ u 问16:安装 PHP 时出现以下错误,怎么处理?
/ ~" v7 ?$ O9 ^ cc: Internal error: Killed (program cc1)
' o# E3 T% T! g9 V3 y* ` Please submit a full bug report.
6 n* v9 v$ z, B6 Q. o* M E See for instructions.5 m; k4 S; s; K- S$ e3 J, h/ C
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1- A4 R1 _) m: z
Installing PHP failed, Please visit https://teddysun.com/lamp and contact.
, ~" o- p$ s- E* ^3 l 答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
- q2 \" X5 W9 p/ H( L+ ?7 \ 更多错误信息查询,参考《PHP编译安装常见错误总结》一文。
& r8 H6 G$ u0 Q1 } Q" m 问17:请问如何卸载组件呢,比如 xcache memcached?
# Q& O, F8 h- q 答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。& N' g/ M9 m. _* Z# u! f( U6 E
比如安装了 PHP 5.4 的话:
( J6 p7 U4 l! W0 y$ p /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so. f& G( b! V8 `6 T( g, K% {0 I
/usr/local/php/php.d/xcache.ini& j8 ~0 P' C |% w' X4 \' N
问18:怎么卸载 phpMyAdmin?
) q8 U' B' _; |7 i. o, ^ 答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。
0 i2 R% B* t8 S: Q0 V2 x' H 默认安装位置是 /data/www/default/phpmyadmin/- r: v( t, P3 `. R% X
问19:多个IP的VPS如何设置一个IP对应一个域名呢?7 l* x: V8 {) R+ e4 F
答:按照以下步骤:
* Q* u3 p: `3 ~( y# Y4 l: ? 1、创建虚拟主机,以域名命名;
; ?3 ~0 m/ z2 Z& V 2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80; D S+ t2 W5 h
3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。+ l# p; |: Q+ A* l: z% M
& c& `0 Q5 X+ c4 K3 U
|
|