|
, c! e0 z: }; g( c# v4 S/ A& D
/ a4 Y; C' }% l8 p
LAMP 一键安装脚本持续更新很长一段时间了。在这期间,经常被问到很多问题,回答的比较零散,因此有必要在这里归纳总结一下。$ V+ `) W2 L9 J* U/ Z' n: |
如果你在使用 LAMP 的过程中也遇到了问题,请参考此文,已经列出了常见的问题和解答,希望能对你有所帮助。
5 |6 L# M( \) }1 f3 X; [- ~ 为什么选择 LAMP 一键安装脚本?
" A0 _0 s9 B- L. t LAMP 是经典的建站环境,尤其适用于个人站长。
& A0 H- M9 F% f+ h$ R' W* T 本脚本的软件版本更新及时,支持 PHP 及数据库自选安装。支持 PHP 和数据库程序自助升级。6 t1 H7 d1 Y$ D% _- `
安装方便,支持众多 PHP 插件,实际上是当初为安装 Moodle 而量身打造的 LAMP 环境。
' P' g$ y. K v h% \: q 安装建议:根据自己的 CMS 建站系统要求,选择合适的版本安装即可。: I9 C4 Q, o0 D- N% X5 j4 l
更新时间:2015 年 08 月 28 日
/ V; T$ C4 y) m/ }' p
2 ^9 p% ~# k- B4 ~9 D- R8 p8 k 程序目录:
7 Q% A0 B; z' i MySQL 安装目录: /usr/local/mysql
, `2 z. ]+ o# i4 @0 ] MySQL 数据库目录: /usr/local/mysql/data(默认,安装时可更改路径,参考问题 8 如何更改)+ \5 a& c/ W$ \2 E; G- e
MariaDB 安装目录: /usr/local/mariadb' ~$ [1 H- e$ Q/ X1 i* e8 ^$ S4 f
MariaDB 数据库目录: /usr/local/mariadb/data(默认,安装时可更改路径,参考问题 8 如何更改)
* c" W7 e8 f0 {1 a+ H PHP 安装目录: /usr/local/php
: [$ P! d5 M4 B) h/ _* r Apache 安装目录: /usr/local/apache
: U7 i2 E# ]& ]1 ^8 E6 W b3 P phpMyAdmin 安装目录: /data/www/default/phpmyadmin(安装完成后出于安全,建议将此目录改名,比如改为 /data/www/default/admin_8989)% G# i) d; a) L
网站目录:+ m V/ ?$ d8 t& T
默认的网站根目录: /data/www/default5 M" F. [* W9 K/ s" A7 f
默认页位置: /data/www/default/index.html+ f+ r; Y5 e) r6 ~0 h, @' r, H# a
新建站点默认目录: /data/www/域名/web2 P/ o" }$ n# e* n" i% B
phpmyadmin 后台地址: http://域名或ip/phpmyadmin/(若目录已改名,此处应为改名后的地址,比如 http://域名或ip/admin_8989/)! x i Q5 Y9 V+ {, b
phpmyadmin 默认用户名:root 密码:root(此密码即 MySQL 的 root 密码。在安装时会要求输入,如不输入则为默认值)/ m* y l. n' F$ D: n0 Z/ ?
xcache 后台地址: http://域名或ip/xcache/
& ^8 F) v/ `9 ^! B4 q z; J xcache 默认用户名:admin 密码:123456(用户名和密码在配置文件 /usr/local/php/php.d/xcache.ini 中定义)
: E1 N2 _! ?& ?+ p 配置文件:/ I: W$ K8 ?& K
Apache 日志目录: /usr/local/apache/logs
4 P6 q* I4 |3 f; b" u+ x- v- d Apache SSL 配置文件: /usr/local/apache/conf/extra/httpd-ssl.conf) r% [2 l: R& B$ U
新建站点配置文件: /usr/local/apache/conf/vhost/域名.conf
1 D2 v( s3 S# | PHP 配置文件: /usr/local/php/etc/php.ini3 R3 ~' \. A) o( o5 \/ Q
PHP 所有扩展配置文件目录: /usr/local/php/php.d/
9 R* t5 c3 }/ s! c% }7 \* o- w MySQL 配置文件: /etc/my.cnf
: Z% J7 L$ a% C6 f |. x! F 命令一览:+ [, j: q" Q8 d% i5 G! L; i
MySQL 或 MariaDB 命令:
0 s6 o! E7 d3 @* y# f/ c /etc/init.d/mysqld (start|stop|restart|status)
, _ ~' C2 m0 Y8 `* C0 B7 T( X+ I0 g- E Apache命令:
) d& o* x) N! K9 }) v3 ]' \8 F /etc/init.d/httpd (start|stop|restart|status): n+ M- M9 w' ~- X* C; Y
memcached- k7 v3 v. e% Y! b8 Y
/etc/init.d/memcached (start|stop|restart|status)
i: O2 j) L/ ` 安装LAMP及建站简单流程:) V2 ^4 Z3 _2 ?
1、安装 LAMP 环境
1 c+ \ `3 o4 ]2 }! I- @0 Y 2、添加虚拟主机。运行命令:lamp add (如果只建一个站,则可以直接将网站程序上传至 /data/www/default 目录下即可)2 G! p" I# ^- f9 C# K: i$ G5 h
3、上传并解压网站程序到网站目录,默认位置为:/data/www/域名/web9 Y2 m2 N% x" y5 G
4、更改网站目录权限。以 root 用户登录,运行:chown -R apache:apache /data/www/域名
7 K5 u* Z% I# U& i0 g; F$ t0 i 5、运行网站安装程序完成网站安装
- @1 V' h. E6 s/ @6 Z, V 问1:安装完网站程序,升级或安装插件等报错,如何更改网站目录权限?9 z9 g6 ]0 c3 O+ }
答:以 root 登录后,运行:chown -R apache:apache /data/www/域名7 f; ^! W7 x( v6 d4 i/ z
问2:安装时因内存不足报错,不能完成安装?
9 e. i3 Y- p) W* E+ q 答:小于 512M 的 VPS 建议并开启 Swap,如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。; @7 `+ w/ v! x. Z& X* y" E( b
更新(2015 年 08 月 28 日):本次更新优化了在小内存(480-512MB)下的安装体验。当 RAM + Swap 的容量小于 480MB 时,直接退出脚本运行;480-600MB 时,新增 PHP 编译选项 –disable-fileinfo 。+ L6 P4 g) m9 B& j1 f
同时还优化了安装过程中对内存的占用。) `( ~- O, J4 Q. m, D% w$ g- O
备注:为什么写成 480 MB ?' |9 l, A, W3 ^. z
这是因为基于 Xen 或者 KVM 虚拟的 VPS,内存容量一般会低于标注容量。一般说是 512MB,但实际也就只有 480MB 左右。( @" y# n4 U8 h2 L" ]; i0 G$ i1 J6 R
问3:域名跟 ip 地址都显示相同的网页,如何设置?
: L$ Y8 u0 S9 S 答:这是因为域名没与 IP 绑定。
+ m$ X; k5 d# G* d/ O. [. ]8 f 修改配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf
9 z* i" u4 M; ^ 在此文件的第 1 行开始,追加以下虚拟主机的配置:
2 e: S5 |4 n/ ?9 ?! @. ?' J1 |, R<virtualhost *:80>ServerName 公网 IPRedirect 301 / 完整网址(如:http://teddysun.com)</virtualhost> 注意,格式是301+空格+斜杠+空格+完整网址
: k* c7 U+ g3 d: D 此处是用到了 301 永久重定向来达到目的。
# {1 f/ J, f9 n7 g7 v0 D 然后保存并重启 Apache,命令:/etc/init.d/httpd restart
+ s5 ~0 ^2 r- U! b. C/ @ 问4:将 MySQL 换成 MariaDB ,应该怎么做?7 m- s, s/ j) [8 G: K3 m3 C( ?1 s2 {
答:- f- ~! Y2 a# e8 D
1、备份所有数据库,执行命令:/usr/local/mysql/bin/mysqldump -uroot -p你设定的root密码 –all-databases > /root/mysql.dump
, A' u2 p t) M! j5 n/ h9 A 2、卸载 LAMP,命令:lamp uninstall
( w( [) v( i9 u9 n R7 X7 o. i 3、重新安装 LAMP,选择 MariaDB8 _2 I, x% w( b+ D2 ^
4、安装完成后,恢复数据库,命令:/usr/local/mariadb/bin/mysql -u root -p你设定的root密码 < /root/mysql.dump, g$ Y- z: I- \: ] \7 N
卸载 LAMP 时,是不会删除 /data/www/default 的,也就是说不会删除网站数据。但数据库会被删掉,因此需要备份。3 G% y* B. D8 }9 O7 J
注意,考虑到程序兼容性问题,不建议这么做(生产环境换数据库程序不妥,应该事先就规划好用哪种数据库),除非你知道如何备份和恢复你的数据库。
C7 F* E! T# c' e( F7 h# A" g& _ 问5:如何更改网站的默认目录?
" r4 ]2 k$ I7 d' ?* T* L 答:修改配置文件 /etc/httpd/conf/extra/httpd-vhosts.conf 里的 DocmentRoot 目录以及下面的 Directory ,再重启 apache 即可' S4 e1 E. V6 G) W3 o( v) ]
问6:全新安装后,无法引用 /data/www/ 之外的目录,如 /home/data/,如何解决?
; E# e) \. X- D. ?' D 答:这是因为出于安全考虑,做了目录权限的 open_basedir 限制。
9 s Y, C6 u( V) g- j/ N! t4 k( l( f 如何添加比如 /home/data 目录呢?修改 /usr/local/apache/conf/extra/httpd-vhosts.conf 中的 php_admin_value open_basedir 后的值,将 /home/data 添加到最后,注意要用冒号分割。再重启 Apache 即可。
% P; K3 g! g1 p/ e" a 问7:请问如果网站是www.ccc.com, 如何让ccc.com跳转到www.ccc.com?
8 T7 ]+ c* _1 d, J& B2 ? 答:既可以在域名解析的时候设置域名跳转(比如 Dnspod 就可以),也可以通过 Apache 的 ServerAlias 设置多个域名。
6 z) H' G- A$ _2 i# C2 L 比如 www.ccc.com 的配置文件是 /usr/local/apache/conf/vhost/www.ccc.com.conf ,在 ServerName 后新增一行 ServerAlias ccc.com 即可。
# D1 ?- t2 |: t+ T- ~& L3 P 修改示例:, j# T/ f4 C) A. F+ L
ServerName www.ccc.com
5 r; q$ L Y$ |( m: b ServerAlias ccc.com
. Z8 h0 e( Z7 w9 x6 f- D1 K 问8:安装时自定义 MySQL 或 MariaDB 的路径,系统自动初始化数据库时会出错。然后会提示启动失败?
% L, d/ N0 n( N 答:自定义 MySQL 的数据库路径时,如果目录不存在的话 MySQL 或 MariaDB 会尝试创建该目录,但一般会由于权限不足而创建失败。
^2 h8 v" B, Z! | MySQL 编译安装后会将 /usr/local/mysql 目录的 user:group 设为 mysql:mysql,所以默认目录 /usr/local/mysql/data 是没有问题的。+ L7 `/ I1 L' C% ~
因此自定义路径时,最好事先创建好该目录,并把目录 user:group 变更为 mysql:mysql,比如更改目录为 /home/mysql/data
9 {: R. U' w- z 当然,在还没有安装 LAMP 之前,系统不一定有 mysql 的用户和用户组。执行以下命令可以创建:
, P$ d: Z5 W5 |/usr/sbin/groupadd mysql/usr/sbin/useradd -s /sbin/nologin -M -g mysql mysql 然后,在 root 用户下执行:chown -R mysql:mysql /home/mysql/data
, E$ f8 |) C0 Z5 ?5 E; ^6 R更新(2015 年 08 月 28 日):本次更新优化了 MySQL 的安装过程,脚本会检测自定义路径是否存在,如果不存在会自行创建目录并改变其 owner 和 group,无需在此之前手动创建了。3 j M) ?4 S$ g. q" I
问9:LAMP 能配合什么 Web 面板管理呢?
9 t. c/ @* a9 ] T" ~5 o 答:Webmin 免费面板。参考《使用webmin管理PPTP VPN Server》一文,有在 CentOS 下如何快速安装 webmin 的教程。, P4 ]' D' z4 k/ U3 i$ D# o1 v4 f
问10:请问 xcache 的后台怎么进去?
) g7 `9 z- }7 |1 t1 F 答:http://域名或IP/xcache/
; E u6 K6 P; U1 N 用户名:admin
* ~& S7 p$ S: W" r. ~: V2 ] 密码:123456
|6 W8 t8 N# h+ s 前提是你安装了 xcache 后才能进入该后台。) d2 ^. N! ~* A
问11:如何修改 xcache 的后台用户名和密码?% ^8 q* S/ ^6 a$ k1 Z
答:修改 /usr/local/php/php.d/xcache.ini 中对应的 xcache.admin.user 和 xcache.admin.pass 的值。
; ^8 a) o/ m4 Z9 _0 y 注意 xcache.admin.pass 的值是密码 md5 后的值。3 U8 V# F7 q! ?9 ~- \
然后重启 Apache 即可。: @' W; {; o7 O3 o
问12:程序只能支持到PHP 5.3,不支持PHP 5.4,请问具体如何降级到PHP 5.3呢?是否可以直接卸载 PHP 然后单独重新安装PHP 5.3 ?
6 q0 z: s2 ~; D* T 答:可以是可以,不过比较麻烦,你要自己重新编译 PHP 5.3.29 。
: Z0 x$ V4 t5 E 删除已有的 PHP 步骤:
6 t4 d( E9 p; B, Q! A$ Y rm -rf /etc/php.ini /usr/bin/php* /usr/local/php
5 |4 ], g3 A1 i! @4 \0 Z 编译 PHP 5.3.29 有几点需要注意的。你需要把环境里的 Apache, MySQL 或 MariaDB 配置一并 configure 好才行,具体可以参照 lamp.sh 脚本里的 install_php 函数。8 Z L# o* M% i' z
当然还有一种办法就是备份好数据,卸载 LAMP 后再次安装时选择 PHP 5.3 版本即可。" o# m9 t- H# [0 r- S e
问13:安装以后要如何关闭日志功能?: f! z0 \$ P( D
答:修改 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,' ~# d7 Y' O" j# p, w8 ^7 f/ O
搜索关键字 CustomLog (第300行),在前面加一个“#”注释掉后再重启 Apache 后就不再产生访问日志了。. t* w3 M: T6 a6 R* v
问14:FTP 安装使用是怎样的?2 e( h! L+ q4 y3 K
答:1、安装 LAMP 环境;
1 @. d z8 S4 S) n3 r 2、运行 pureftpd.sh 安装 pureftpd 软件(pureftpd 相关命令:service pure-ftpd start/stop/restart);4 s7 c. p# S% z+ E3 A: E; F: v/ s* z
3、运行 lamp ftp add 命令新增 ftp 用户并根据提示绑定该用户的根目录(例:/data/www/default);: v, B3 \' d5 Z
4、运行 lamp ftp del 命令删除 ftp 用户,但并不会删除数据;
% q4 I) [- J/ J8 w: v ^( G1 [' M 5、运行 lamp ftp list 命令查看已有的 ftp 用户一览。& |( Q- v( C# A1 |7 T/ }8 C
敬请注意:安装 FTP 会遇到各种权限问题,会和已有的 apache 用户和用户组产生冲突,导致通过 FTP 上传的文件在程序里不可用。
" b( ~* A5 |$ n5 P+ ?' g& _ 因此,不推荐使用。目前 SFTP 已经全面替代 FTP 了。你可以用 winscp 客户端 root 连接后上传文件,然后再改下用户和用户组权限为 apache 即可,简单方便。
m0 M$ a3 T" g9 L 问15:Apache 的 SSL 如何设置?
% \9 w( o! i7 q- `6 R D/ K5 ] 答:一般设置 /usr/local/apache/conf/extra/httpd-ssl.conf 就够了。$ K4 [8 N( q; L- i8 ^
还需要在 /usr/local/apache/conf/httpd.conf 中开启 Include conf/extra/httpd-ssl.conf ,也就是将前面的 “#” 去掉。0 t* y P) G) y" M
可以参考《Apache下部署ssl教程》一文。
& P+ x. H: P" _5 U/ s 问16:安装 PHP 时出现以下错误,怎么处理?* y1 q. p) @ ]$ g9 Y' W
cc: Internal error: Killed (program cc1)4 O0 E+ l! j. W* W) d' u
Please submit a full bug report.
& `/ F% S+ |. ]$ p See for instructions.$ x4 O `$ X: j( E) I% \# {& D
make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
, U* I6 N! T! s+ f c Installing PHP failed, Please visit https://teddysun.com/lamp and contact. L9 p- @; m" T. U
答:内存不足,安装被 kill了。内存低于 512MB 的又没有 Swap 的话就会如此。如何开启 Swap ,可以参考《如何在CentOS中添加Swap》一文。) O- P/ r Y3 E
更多错误信息查询,参考《PHP编译安装常见错误总结》一文。* T9 o/ K$ [, p/ [5 |
问17:请问如何卸载组件呢,比如 xcache memcached?
2 w; Y. t% s" ^! H4 N7 z! u 答:删掉对应的 .so 文件及配置文件再重启 Apache 即可。0 q; x( v* `+ `
比如安装了 PHP 5.4 的话:7 A8 B. r$ B1 l; T. W8 _
/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so! n a. m5 X, H- M
/usr/local/php/php.d/xcache.ini
' x! j+ f* h+ y7 _1 f, F/ b' p 问18:怎么卸载 phpMyAdmin?
/ y) p& ^0 w+ {9 j+ y 答:phpMyAdmin 如果不需要的话,直接删除其目录就OK了。4 ~, D9 n+ g$ S
默认安装位置是 /data/www/default/phpmyadmin/
( ^0 [0 o4 C# u( _8 t l, W 问19:多个IP的VPS如何设置一个IP对应一个域名呢?
7 [! I t& z0 e, O6 K 答:按照以下步骤:
, C# @6 A7 l; \6 r. F- y: { 1、创建虚拟主机,以域名命名;
2 ^; N5 o6 _" B: g) A; a: o, Q7 r 2、修改配置文件/usr/local/apache/conf/vhost/域名.conf,将其中的第一行的 virtualhost *:80修改为 virtualhost IP:80;
0 t& ]3 B2 {# Z$ a. \9 ` 3、解析对应的域名到第二步设定好的的 IP ,重启 Apache。
! X5 F0 y g4 z" V, }' k+ E! B1 @, `4 ]4 ~% C6 G
|
|