|
|
/ {+ {0 W B, ^2 W# Q
5 j' A' D: w- N0 E5 r' R4 \
LAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。8 ?% e+ @% V1 k2 Z8 E' j
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。
1 v. n* J9 ]* f2 R( o5 @+ h7 T 为什么选择 LAMP 一键安装脚本?8 }- V& u7 c' @0 D2 |5 G7 q
LAMP 是经典的建站环境,尤其适用于个人站长。
v" J3 L1 M) S5 u$ R) C, L 本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。
1 p2 @, [# A! h4 I6 M: U6 M* O5 p8 { 安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。1 P8 I3 p" v9 l# ]( }0 i% ~( ^
安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。* `& p6 ^( W$ g) s% z' A" L
更新时间:2015 年 08 月 28 日
* e1 D" h# p7 q8 e4 o
7 B9 @0 m# \- A. @. K) V. C 程序目录:
2 T: \& ]7 l' N6 z% ? MySQL 安装目录: /usr/local/mysql
0 _3 G$ x) `% @5 L2 F MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)5 A+ g& ^' s4 t! c( l
MariaDB 安装目录: /usr/local/mariadb
1 l8 i' ]9 ^1 q8 ~ MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改); t' ~0 m+ H% |
PHP 安装目录: /usr/local/php
2 k" w7 [& v, I Apache 安装目录: /usr/local/apache
, B4 O; j/ i( v# `1 j phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989). t {/ w. Z4 s( a i9 a: q
网站目录:- e9 V) K i; F. B1 Y7 e
默认的网站根目录: /data/www/default
+ F, p3 E2 m, z8 z2 I+ c 默认页位置: /data/www/default/index.html! W, N4 }/ I* E* P1 D. y! {
新建站点默认目录: /data/www/域名/web
5 f; Q/ r& F- e phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/) y1 U) g* w) n6 `* K
phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)
6 ~- U+ d, V- n& R4 x- r xcache 后台地址: http://域名或ip/xcache/
4 l u2 s" S0 `! _5 L xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
7 E T+ }: [$ R2 P6 j; w: q 配置文件:6 C! J9 n) C8 L. _0 P2 {
Apache 日志目录: /usr/local/apache/logs: ]- x$ K9 m; U# K+ o8 y
Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf
1 W! h0 ~2 B I/ i B 新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
5 t0 K3 k% N: z PHP 配置文件: /usr/local/php/etc/php.ini8 n1 J* q2 N# Y. P+ X) d
PHP 所有扩展配置文件目录: /usr/local/php/php.d/* c2 U0 Q; @# h. R& H
MySQL 配置文件: /etc/my.cnf, J& h" A% l+ ]+ \# k5 P
命令一览:
! h3 \0 ?2 T7 N- a2 [$ w j$ i MySQL 或 MariaDB 命令:
% X% H( c7 o, r) M /etc/init.d/mysqld (start|stop|restart|status)- ?4 g/ U) m) L
Apache命令:" n4 Q% F- j# o" Z t6 u
/etc/init.d/httpd (start|stop|restart|status)
: }' K: c: ]" f2 [5 T9 V, A+ @1 d memcached! u& ? k9 N/ g }& [
/etc/init.d/memcached (start|stop|restart|status)
6 ]- \2 p7 P7 @' k& n P* I4 d 安装LAMP及建站简单流程:
& o0 G$ t6 M- w# \% D 1、安装 LAMP 环境6 W' H5 m5 ~6 [" M* Z
2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)( l3 |1 |- E+ h
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web
K6 i! u% i! T( S G 4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名2 | C) ]: L; _: y0 m3 E6 x
5、运行网站安装程序完成网站安装& m$ _3 w" p+ P ^
问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?- m9 C- _2 L7 A$ ~6 i+ ~. Q
答:以 root 登录后,运行:chown -R apache:apache /data/www/域名
0 V" ^' B+ U9 t2 l b3 m, C 问2:安装时因内存不足报错,不能完成安装?8 r. U8 [" y. B0 R
答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
7 \8 Z1 `( `1 [/ o! E更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
# e5 r9 P7 X# C% w9 N同时还优化了安装过程中对内存的占用。
9 H1 v. X8 t9 j% c3 g* t( U' |备注:为什么写成 480 MB ?
. y; C0 b; e- J) R# z这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
) h1 L7 h* c9 p4 o7 l 问3:域名跟 ip 地址都显示相同的网页,如何设置?" m7 e: s! e1 K8 t7 i
答:这是因为域名没与 IP 绑定。
3 E6 `: h7 z8 g' D* k 修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
& @4 c- Y. u7 O$ u Y8 { 在此文件的第 1 行开始,追加以下虚拟主机的配置:/ a/ `4 ]- j' [, B
<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址
O8 `' G4 H* m, o 此处是用到了 301 永久重定向来达到目的。0 ]- M4 ?/ U% a- O3 I6 S2 p( i( c0 ~
然后保存并重启 Apache,命令:/etc/init.d/httpd restart
$ v9 c8 K* D! } 问4:将 MySQL 换成 MariaDB ,应该怎么做?0 w# E9 O& e0 o8 p' Y% Z8 N
答:
6 \/ ?* ?' Y% Q; Q 1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
8 x, Y- c8 ?# m5 @. g ^+ a/ n7 o+ t 2、卸载 LAMP,命令:lamp uninstall
1 H0 U8 G5 B) X- r" m 3、重新安装 LAMP,选择 MariaDB2 Z; v% `' `! e1 w) w
4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump
4 p% t. q6 v G6 j5 _2 u) I1 h1 r% s 卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。1 m a3 _7 E- G/ V2 j, e: a' X) f
注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。
+ n+ b& o' e) n2 G( j9 U0 g2 P 问5:如何更改网站的默认目录?
2 s1 Y9 F, i0 f- h7 w0 } 答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可
. L. _: _6 G, f1 O3 T 问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?4 a- I( A8 |2 |' F8 a b
答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。
8 l m9 K4 E9 Z% K 如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。7 d9 t& g* a5 y9 _) j4 f+ I
问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?. q# I, w1 n9 C5 e
答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。& q9 l6 o/ C2 [9 u$ T) D
比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。7 n$ c) ^2 d: g; A7 m7 G5 @1 P
修改示例:- y. v! @6 a; I* @& q
ServerName www.ccc.com' Z# s) }: ^: A
ServerAlias ccc.com
. W8 D! Y" K) u1 |/ E9 v 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?8 t$ o- u! `1 {! P
答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。' \( ~5 R* t k* f# i1 K
MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。) n# q' b9 A; G9 x3 n
因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data q3 h; `$ R+ f: @; c# A' S
当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:- u; w# z s: W! b2 o8 |. O$ r4 K0 Y! q
/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data
& N2 P% l- z8 V4 O8 { _8 t* D3 y更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。- Z- D" }" t1 ~: f+ W0 B
问9:LAMP 能配合什么 Web 面板管理呢?8 P% @6 V# e' Y, U1 b1 ^2 g& s# `
答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。4 S7 ~. ~. S! f0 x# e
问10:请问 xcache 的后台怎么进去?0 }5 p7 U' H4 U. e
答:http://域名或IP/xcache/
! L: Q1 V( d# ] 用户名:admin
9 G+ ^& E9 k- o+ J5 p 密码:123456
4 h. Y* @8 L2 ~3 E! s, ]' F1 ] 前提是你安装了 xcache 后才能进入该后台。
. n& K& F; Z7 ~# B) R2 j6 b 问11:如何修改 xcache 的后台用户名和密码?* u+ b& Y, T& X" _! F4 I/ u
答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。1 j$ [$ U8 B/ e/ f. {8 `2 p
注意 xcache.admin.pass 的值是密码 md5 后的值。7 T0 ^: I& K) G
然后重启 Apache 即可。- ^( c1 D4 F' f+ } d* E/ _" x
问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?% v2 Q1 Y! n; z& ^3 {6 P4 a7 K
答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。9 O% d3 w2 D0 X# |( B
删除已有的 PHP 步骤:8 J, T. [1 r0 O5 c
rm -rf /etc/php.ini /usr/bin/php* /usr/local/php' y% Y* d0 {- y
编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。
" P" k3 b- z6 X6 a3 i& [0 x$ o: { 当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。
L4 l8 h- _+ ?" ?/ u 问13:安装以后要如何关闭日志功能?/ q9 P- e$ O% E
答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,
1 n3 s- m8 |+ r 搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。# d0 E( J; j! _0 a4 a
问14:FTP 安装使用是怎样的?
, E, M, p* _' [- Y0 e+ r- k 答:1、安装 LAMP 环境;
2 T; `9 N, \5 o8 L: Z 2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
0 R/ F( W) @! D* L) N 3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);
1 E# L+ B5 r8 W8 X$ W 4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
1 W' k* Z( X1 B, |' }) x9 Y" `4 K 5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。
+ B* w: _0 B7 [- A4 e$ I) V( r 敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。4 T: Y7 N. D/ `& W% V( U% S% d
因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。
! ? n% O' l3 \0 q# Y 问15:Apache 的 SSL 如何设置?
' p! h5 r7 J5 {8 M' a 答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。
* W8 }# t+ ]# k6 l 还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。
6 B7 e3 I& u; {6 k- D 可以参考《Apache下部署ssl教程》一文。. V1 T5 {+ R/ `9 Z3 ]" T c
问16:安装 PHP 时出现以下错误,怎么处理?6 s5 e8 B) e5 s% N
cc: Internal error: Killed (program cc1)
/ d9 O, m3 l2 ^- l c! m Please submit a full bug report.
4 ~+ ]* j$ j% `- K/ }- s See for instructions.. V0 g. t: t( X/ ]( O' X! q( c
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1, f- g1 O: @- [ Z! O* H! o
Installing PHP failed, Please visit https://teddysun.com/lamp and contact.7 {8 t& o7 v3 F6 K* X6 O3 B- \+ z
答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
& n, G- h5 t$ ?/ i* ?0 t/ R 更多错误信息查询,参考《PHP编译安装常见错误总结》一文。7 E1 ^6 T- s0 i% C9 t Y- |; n$ o
问17:请问如何卸载组件呢,比如 xcache memcached?4 |0 M0 Q/ ^7 i2 L' E) w
答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。2 J2 L( j4 C+ A, z/ X; T
比如安装了 PHP 5.4 的话:
9 b2 ] l- f3 z: t /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
5 Y, G' K% T: B /usr/local/php/php.d/xcache.ini
9 t8 v ^. z5 t+ u& C3 B3 A 问18:怎么卸载 phpMyAdmin?8 J, x% }- b: C" w) {' A7 D0 q
答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。
" g) O! p1 ?, S% s 默认安装位置是 /data/www/default/phpmyadmin/
9 r, }) Y- N9 M. C+ H9 r 问19:多个IP的VPS如何设置一个IP对应一个域名呢?8 }1 l( u2 G" ^( d, g! a
答:按照以下步骤:8 P/ t2 B9 w/ c; o+ S* n* P" o4 I/ v- b* b
1、创建虚拟主机,以域名命名;( {% V) l7 J \( h
2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
; |+ K1 |' [: @ 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。/ Q: S8 r/ L8 n2 g) j
+ V2 s7 U% J7 C$ t- y- [
|
|