|
|
! @" I3 O. c9 H

) `; {2 u: R5 MLAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。* k" V2 h0 N$ |9 l U
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。4 i! e9 l W1 z5 l" ^
为什么选择 LAMP 一键安装脚本?
# G1 @4 K& R6 b. h/ M2 i( V LAMP 是经典的建站环境,尤其适用于个人站长。" E4 l; c8 x5 b7 i0 z, t6 u4 {: V' a
本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。
- s% m2 m' x1 E1 ^3 V6 F2 X. J 安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
4 h* ?0 D3 X5 F, u 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。
) U- t% S- {( {* n( K% O# Q" p 更新时间:2015 年 08 月 28 日
$ H9 I% j% p. i: j( |( ?, `
* h9 ~' s6 G/ F p E, w 程序目录:* |" A$ X( _( W5 `( q
MySQL 安装目录: /usr/local/mysql
& O0 W% I! z) |% z MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)
6 J0 K; \: K# p' N MariaDB 安装目录: /usr/local/mariadb
. V1 u4 K& M3 g9 q/ l* d MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
4 G8 C- T8 {# @9 ?# @ PHP 安装目录: /usr/local/php
5 D$ I6 Z _4 Z% O7 v6 O) Q5 b Apache 安装目录: /usr/local/apache
H" B& C1 Y+ H" c phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)) ~, x9 P7 ~/ L6 U6 D
网站目录:. v! j% t0 L% o) o' @5 ^( U E
默认的网站根目录: /data/www/default# ~1 _+ v6 M2 S) w1 R' M. T z
默认页位置: /data/www/default/index.html3 N) h) O4 k5 h: }% f- @
新建站点默认目录: /data/www/域名/web
, {/ ^4 z2 v" I9 O2 x" o. u phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)
1 j) ], @+ J1 v. @2 g! j phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)7 n, |4 c' d" V2 z* L
xcache 后台地址: http://域名或ip/xcache/
' s- p* U$ k* V4 t& U xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
1 X& X- F% J) V! e7 e! p( v 配置文件:& L8 ~- h" _: ]7 ~. `
Apache 日志目录: /usr/local/apache/logs
' @( H9 |! a9 w" v, a" K Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf
* o1 _/ { K$ {' W/ n7 p$ @ 新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
3 O; _ {5 Y: |* [, S PHP 配置文件: /usr/local/php/etc/php.ini
+ W: r* p$ @0 \0 E4 ` PHP 所有扩展配置文件目录: /usr/local/php/php.d/
7 Q! l x0 H; t; L! h. v MySQL 配置文件: /etc/my.cnf
& I9 I6 H A: i3 p* y8 z 命令一览:
9 f! R. j7 e% X5 O6 H MySQL 或 MariaDB 命令:
, J: ?# k8 W; o; W& J1 x' Q /etc/init.d/mysqld (start|stop|restart|status)( `! Y, X2 P! N2 _
Apache命令:
5 m# @7 v; [1 E3 M+ O0 s4 I% p /etc/init.d/httpd (start|stop|restart|status)
, f$ [5 y/ B' ^8 ?8 M! Q5 i" ~' A memcached, q* f% U4 `8 {* B; C- a
/etc/init.d/memcached (start|stop|restart|status)$ I* a9 P9 M- f3 w% D$ O
安装LAMP及建站简单流程:- O3 a6 T$ r+ }6 f4 o
1、安装 LAMP 环境
v( c! y* v. r/ D( S \ 2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)" t( G4 ~9 i6 x5 F8 ~( |. V
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web
1 q6 l3 g+ C$ P9 C4 J5 @9 N 4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名
" k) Y/ [) |/ W: R d. K; f% j 5、运行网站安装程序完成网站安装1 @1 a' ?+ [. D: l
问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?
% f0 O5 K. u7 C6 J( s* c 答:以 root 登录后,运行:chown -R apache:apache /data/www/域名9 e$ o! n) ~# ]9 {( x& q v4 p3 \
问2:安装时因内存不足报错,不能完成安装?1 o. q) m0 d3 ]: t
答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。
" _0 W) O+ E* c2 R0 X% S) l. f更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。
1 Y6 Q R# G0 w! t: U) C同时还优化了安装过程中对内存的占用。; J) u9 f, z" D" Y
备注:为什么写成 480 MB ?
3 u0 Y0 t& H6 H5 @8 I( r这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。
5 f; r" [7 X$ ^. b: m 问3:域名跟 ip 地址都显示相同的网页,如何设置?
G. O( Z) |8 D, K1 U# r 答:这是因为域名没与 IP 绑定。, D$ ~$ T; S; D( [& }
修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
' s$ A0 P+ X8 O9 i 在此文件的第 1 行开始,追加以下虚拟主机的配置:
6 H- _# [1 v: t4 x<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址7 n/ R, @& E# E4 p, w4 Y
此处是用到了 301 永久重定向来达到目的。
- {5 C3 @7 G8 j; {/ V 然后保存并重启 Apache,命令:/etc/init.d/httpd restart
/ d) K1 l3 A* Z, k5 U: k! y 问4:将 MySQL 换成 MariaDB ,应该怎么做?
8 G7 A m) l2 E' I' I& [: j 答:7 ~# m3 O+ I! X8 s7 c
1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
# G$ {& y2 p5 m 2、卸载 LAMP,命令:lamp uninstall
" v3 n8 i4 w. x0 o5 d1 K; t 3、重新安装 LAMP,选择 MariaDB0 d# }( f+ |/ k! d+ w
4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump
6 p7 G$ i" D; A/ T8 y- L 卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。( ?$ }% }: Y/ Y' o7 I* ]; s+ K0 Q
注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。+ ~/ P0 e0 i& k+ y6 }
问5:如何更改网站的默认目录?& N+ W* Q6 c9 v6 n5 O0 Y1 }3 h
答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可
4 R, R0 S& ?1 d7 @ 问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?% u9 j9 s9 W2 @4 F0 B0 Z o& V2 K
答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。
( G/ [8 y- {) G4 B1 w( |" i. N 如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。
4 ^8 O( e) L5 d P 问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?4 B' `4 b" u8 X s& _* S# ~
答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。
* ]' i1 c! N' L! p) p- s& k 比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。
, T) R0 D6 l! D! [6 A 修改示例:
$ q; v$ E- S; ]' N+ H" s: C# R ServerName www.ccc.com p& D) ?4 t4 Q; V- a. j- k
ServerAlias ccc.com
5 f' ~7 w3 f' n9 p4 G 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?
- v# q* `0 x* q8 d 答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。" G+ f3 H+ e4 d. R! {0 Z. s
MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。, {! I' t) M4 r+ C
因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data9 X- [- h& T( _+ B( P* ^* K
当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:
8 Y6 W6 y9 L6 w/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data" W4 Y$ |" g# T) Z
更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。0 v5 a. b( y4 H0 }3 W. @6 T- e E
问9:LAMP 能配合什么 Web 面板管理呢?
! ^8 n6 {/ F/ B$ r( n* J& f 答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。
/ @, T( Y2 V2 ~5 s; H, {9 b1 C 问10:请问 xcache 的后台怎么进去?
- M! m5 r* S3 y% x2 p) f& _ 答:http://域名或IP/xcache/% c# k9 w* I- b9 V& a$ V
用户名:admin
4 M0 k) W/ V; }5 @8 R. A 密码:123456( r+ A9 M$ h" `
前提是你安装了 xcache 后才能进入该后台。% _ n( t) m! V1 L! N8 e" w2 Z6 W
问11:如何修改 xcache 的后台用户名和密码?
9 h% h! r- J. Q# F; ?4 A+ O 答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。! |+ W0 H0 |0 f& n
注意 xcache.admin.pass 的值是密码 md5 后的值。
1 P% B. `( P) n" w7 N# B* m( K 然后重启 Apache 即可。$ u4 H6 H- C* f! o* b P& n- f2 M) D
问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?
5 r4 o N. u1 F 答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。5 @$ [5 y e: g& s+ P- j. K
删除已有的 PHP 步骤:
1 x( ?# ^9 a1 h9 [0 c* y rm -rf /etc/php.ini /usr/bin/php* /usr/local/php" L0 H7 u0 Z+ Q6 G% `1 l) I
编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。6 O, _& V1 V+ I( W Y0 ^
当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。: ^# [9 `% ~; D" G) j. l9 {
问13:安装以后要如何关闭日志功能?
: a8 n# }2 G8 H" T2 O: ?. S! D 答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,5 o7 a: Y# M/ w3 c: \: j7 }
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。
1 {% M2 Y& W$ m7 j( `. z* l 问14:FTP 安装使用是怎样的?6 n+ d* w) ~# M( D6 \' l
答:1、安装 LAMP 环境;
' x$ l$ {" k8 b. V( x8 r 2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);
+ c# d' G: }# T; Z+ n. L+ e$ X 3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);
$ i0 ]0 f! W1 w# } 4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
2 [3 C( A9 |2 T4 }7 M) z% @ 5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。4 M, L! ]" F; h; R; |: E$ t
敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。 D: c9 t1 m( L- z9 @$ d
因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。1 ]$ V! {6 w0 @( S1 g% A% Y
问15:Apache 的 SSL 如何设置?( A7 M/ d4 u- ?% A9 p0 A7 r% ^
答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。
5 z( n8 q$ M6 |0 w! D# U) q- Q 还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。
* i, l5 g/ B) y0 M$ ~ 可以参考《Apache下部署ssl教程》一文。9 F8 E; e3 x2 C
问16:安装 PHP 时出现以下错误,怎么处理?4 _! E% i5 S: @3 r% Z( Y
cc: Internal error: Killed (program cc1)
4 S$ h: c6 `; y9 s Please submit a full bug report.% M q, I& M5 I. v
See for instructions.
! c7 f- E5 L5 K4 F* r make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1. R$ h. {$ c9 l! t: D5 U( p2 _2 p
Installing PHP failed, Please visit https://teddysun.com/lamp and contact.
$ z# t4 p* O: N2 q- } 答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。- X- e/ a9 a9 u3 H6 x
更多错误信息查询,参考《PHP编译安装常见错误总结》一文。
( w# A7 X3 J+ W: v5 k" l6 ~0 A 问17:请问如何卸载组件呢,比如 xcache memcached?
' n: e# s6 r# \8 N: K 答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。
6 J; U. M5 c7 I- z: @$ x; z# M. e 比如安装了 PHP 5.4 的话:* V; C0 _" A( @* J0 p! U
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so) U0 n/ A- `" Q0 I1 i/ n
/usr/local/php/php.d/xcache.ini5 p& ?7 _6 k! C" z; a- l$ h: A% n1 l& w- [
问18:怎么卸载 phpMyAdmin?: L; J) A! j! b- q: C1 S
答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。/ y' e' W& `8 y
默认安装位置是 /data/www/default/phpmyadmin/
/ s% M3 `9 \" Z+ W7 G* c$ w- { 问19:多个IP的VPS如何设置一个IP对应一个域名呢?/ ^! g5 _6 c7 T" Q
答:按照以下步骤:
( m. w+ B. @1 ?, d0 r 1、创建虚拟主机,以域名命名;$ }; R) p: h( H/ P0 `0 |7 h% J- }
2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
6 H3 ]6 W( z, l5 S$ ^% R 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。0 u, Z8 L& P& I
; j4 o7 ~+ j) J Q |
|