이 글에서는 Linux 시스템에서 PHP 환경을 설정하는 방법을 자세히 설명합니다. PHP는 C 언어로 작성되고 원래 Linux 시스템에서 실행되므로 Linux가 PHP에 가장 적합한 환경입니다.
이 기사의 작성자는 가상 머신(VMware)에 설치된 CentOS 5.5를 테스트했습니다. 자세한 설치 방법은 아래
1. 준비 작업
1. 먼저 설치하려는 Linux 시스템이 설치되어 있는지 확인하세요. Apache, MySQL, PHP가 설치되어 있으면 먼저 제거하세요.
설치 여부 확인(Apache는 예시)
[root@gamejzy Linux]# rpm -qa|grep httpd
참고: rpm -qa는 머신에 설치된 모든 소프트웨어를 확인하는 것입니다. grep httpd는 httpd(apache)와 관련된 소프트웨어를 필터링하는 것입니다. 참고: grep php는 PHP를 보는 것이고 grep mysql은 MySQL을 보는 것입니다
명령을 실행한 후 아무 것도 나타나지 않으면 시스템에 Apache 소프트웨어가 설치되지 않은 것입니다. 설치되었다는 뜻입니다.
위 그림과 같다면 세 가지 소프트웨어를 모두 제거해야 합니다.
제거 명령은 다음과 같습니다.
[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
참고: --nodeps는 강제 제거입니다.
2. gcc 및 g++ 컴파일러가 설치되어 있는지 확인하세요. Linux 시스템에서
설치 여부를 확인하는 것은 매우 간단합니다. 명령줄에 "gc" 또는 "g+"를 입력하고 탭 키를 누른 후 아래에 표시된 명령이 있는지 확인하세요.
없어도 상관없습니다. gcc와 g++를 설치하는 방법은 매우 간단합니다.
gcc 설치:
yum -y install gcc
g++ 설치:
yum install gcc-c++
3. 모든 소프트웨어(주로 tar 패키지) 패키지를 /tmp/lamp에 복사하고
tar.gz 명령을 추출합니다(예: PHP 소프트웨어). ): tar zxvf php -5.2.6.tar.gz
이 명령을 실행하면 현재 디렉터리에 php-5.2.6 폴더가 생성되고 압축이 풀린 모든 파일은 다음 위치에 저장됩니다. php-5.2 .6 폴더
같은 방법으로 모든 패키지의 압축을 풀고 *.tar.gz 파일을 모두 삭제하세요
[root@gamejzy lamp]# rm -rf *.gz
위 명령은 모든 .gz 파일을 삭제합니다
4. 소프트웨어 패키지 컴파일 및 설치 소개
리눅스 시스템에서 각 소스코드 소프트웨어 패키지를 설치하는 과정은 다음과 같다.
Δ 구성(configure)
Δ 컴파일(make)
Δ 설치(make install)
2. LAMP 환경 구축(아래 순서대로 설치해주세요)
여기의 모든 소프트웨어는 /usr/local에 설치됩니다.
1. libxml 설치
설치 순서: 1. libxml 디렉토리를 입력합니다. 2. 구성 매개변수(설치 경로, 종속 소프트웨어, 설치 기능 등 포함) 3. 컴파일. 참고: 모든 소프트웨어 패키지 설치는
[root@gamejzy lamp]# cd libxml2-2.6.30/ [root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
./configure와 유사합니다. 소프트웨어 패키지에 대한 매개변수 구성 명령은 지정된 설치 디렉터리 중 일부가 없으면 자동으로 생성됩니다.
[root@gamejzy libxml2-2.6.30]# make && make install
위 명령은 함께 컴파일되어 설치됩니다. 소프트웨어가 작으면 설치 속도가 상대적으로 빠를 수 있습니다. 시간이 더 오래 걸립니다.
2. libmcrypt 설치
[root@gamejzy lamp]# cd libmcrypt-2.5.8/ [root@gamejzy libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt [root@gamejzy libmcrypt-2.5.8]# make && make install
3. zlib 설치
[root@gamejzy lamp]# cd zlib-1.2.3/ [root@gamejzy zlib-1.2.3]# ./configure [root@gamejzy zlib-1.2.3]# make && make install
./configure --prefix를 따르지 마세요. 매개변수를 사용하면 libpng를 설치할 때 zlib가 사용되므로 기본 디렉터리에 설치하도록 둡니다.
4. libpng 설치
[root@gamejzy lamp]# cd libpng-1.2.31/ [root@gamejzy libpng-1.2.31]# ./configure --prefix=/usr/local/libpng [root@gamejzy libpng-1.2.31]# make && make install
5. jpeg6 설치
이 소프트웨어는 구성 시 디렉터리를 자동으로 생성하지 않습니다. .
[root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6 [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/bin [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/lib [root@gamejzy libpng-1.2.31]# mkdir /usr/local/jpeg6/include [root@gamejzy libpng-1.2.31]# mkdir -p /usr/local/jpeg6/man/man1
를 수동으로 생성해야 생성된 디렉터리가 완성됩니다!
[root@gamejzy lamp]# cd jpeg-6b/ [root@gamejzy jpeg-6b]# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static [root@gamejzy jpeg-6b]# make && make install
./configure의 매개변수 설명:
--enable-shared 공유 라이브러리를 생성하는 데 사용되는 GNU의 libtool
--enable-static 정적 라이브러리 libtool을 생성하는 데 사용되는 GNU
6. freetype 설치
[root@gamejzy lamp]# cd freetype-2.3.5/ [root@gamejzy freetype-2.3.5]# ./configure --prefix=/usr/local/freetype [root@gamejzy freetype-2.3.5]# make && make install
7. autoconf 설치
[root@gamejzy lamp]# cd autoconf-2.61/ [root@gamejzy autoconf-2.61]# ./configure [root@gamejzy autoconf-2.61]# make && make install
이 소프트웨어는 기본 디렉터리에 직접 설치됩니다.
8. GD 설치
[root@gamejzy lamp]# cd gd-2.0.35/ [root@gamejzy gd-2.0.35]# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ [root@gamejzy gd-2.0.35]# make && make install
./매개변수 설명 구성:
--with-jpeg=/usr/local/jpeg6/ 지정 JPEG 라이브러리 파일의 위치를 찾으려면
--with-png=/usr/local/libpng/ png 라이브러리 파일의 위치를 찾을 위치를 지정하세요
--with-freetype=/usr/local/ freetype / freetype 2.x 글꼴 라이브러리 위치를 지정하세요.
참고 그림과 같이 이 패키지를 설치할 때 다음 오류가 발생할 수 있습니다. 아래:
이러한 오류가 발생하는 경우 해결 방법:
[root@gamejzy gd-2.0.35]# vi gd_png.c
키워드 "png.h" 명령 찾기: /png.h를 누르고 Enter를 누르세요.
다음으로 바꾸기: /usr/local/libpng/include/png.h
효과는 아래와 같습니다:
保存退出,继续执行"make && make install" 执行即可安装成功。
九、安装Apache(关键)
[root@gamejzy lamp]# cd httpd-2.2.9/ [root@gamejzy httpd-2.2.9]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support [root@gamejzy httpd-2.2.9]# make && make install
./configure 中的参数说明:
--sysconfdir=/etc/httpd 指定Apache服务器的配置文件(httpd.conf等文件)存放位置
--with-included-apr 使用捆绑APR/APR-Util的副本
--enable-so 以动态共享对象(DSO)编译
--enable-deflate=shared 缩小传输编码的支持
--enable-expires=shared 期满头控制
--enable-rewrite=shared 基于规则的URL操控
--enable-static-support 建立一个静态链接版本的支持
测试 Apache 服务器
1、检查 /usr/local/ 下是否出现 apache2 目录;
2、检查 /etc/ 目录下面是否出现 httpd 目录,即里面是否有 httpd.conf 文件、extra目录等内容
3、开启 apache 服务器
[root@gamejzy httpd]# /usr/local/apache2/bin/apachectl start
stop(关闭)、restart(重启)
4、查看 apache 服务器是否启动,即查看 80 端口是否启动
[root@gamejzy httpd]# netstat -tnl|grep 80
执行完命令,出现如下所示,表示已经启动
tcp 0 0 :::80 :::* LISTEN
5、在浏览器中访问
如果在本机的话,请在浏览器地址栏中输入:localhost 或127.0.0.1
如果是远程连接的话,比如:SSH连接,那么请在浏览器地址栏中输入 Linux 的 ip 地址。比如:192.168.1.233
若网页中出现大字“
”说明 Apache 安装成功。
测试完毕!
添加 Apache 每次开机自动启动
[root@gamejzy /]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
十、安装MySQL(重要)
安装 MySQL 之前先建立一个专门管理 MySQL 的组和用户名
建立一个组名叫“mysql”
[root@gamejzy /]# groupadd mysql
建立一个用户名叫“mysql”,让他属于“mysql”组
[root@gamejzy /]# useradd -g mysql mysql
[root@gamejzy lamp]# cd mysql-5.0.41/ [root@gamejzy mysql-5.0.41]# ./configure --prefix=/usr/local/mysql --with-extra-charsets=all [root@gamejzy mysql-5.0.41]# make && make install
./configure 参数说明:
--with-extra-charsets=all 安装MySQL 所有的字符集
注意 在 ./configure 的时候如果出现如下错误
原因:缺少ncurses安装包。
解决方法:下载安装相应软件包
yum list|grep ncurses yum -y install ncurses-devel
ncurses安装完成之后,再进行 ./configure 配置!
MySQL安装完成之后,设置一些内容,这些内容非常繁琐,但是又非常关键的,希望大家耐心学习。
1、设置配置文件 my.cnf,放在 /etc/ 目录下
[root@gamejzy mysql-5.0.41]# cp support-files/my-medium.cnf /etc/my.cnf
2、初始化数据库文件,安装完 MySQL 之后,并不会出现 MySQL 的数据文件及数据存放位置
首先切换到 MySQL 的安装目录下
[root@gamejzy mysql-5.0.41]# cd /usr/local/mysql/
使用 bin 目录下的 mysql_install_db 进行初始化数据库文件,并使用上面建的 mysql 用户
[root@gamejzy mysql]# bin/mysql_install_db --user=mysql
运行完之后,会发现 MySQL 安装目录中会多一个 var 目录,里面放置的就是数据库文件,包括我们已经建的数据库都会放置在这个目录里面。
3、设置 MySQL 安装目录权限
改变目录下的所有文件和目录的拥有者为 root
[root@gamejzy mysql]# chown -R root .
改变 var 目录的拥有者为 mysql 用户
[root@gamejzy mysql]# chown -R mysql ./var/
改变所有目录和文件的用户组为 mysql 组
[root@gamejzy mysql]# chgrp -R mysql .
4、启动 MySQL
[root@gamejzy mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
& 表示在后台启动
这时,使用 netstat -tnl,如果看见 3306 端口,那么说明启动成功
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
5、设置权限,如果我们现在直接使用 bin 目录下的 mysql 命令,那么就能登录
[root@gamejzy mysql]# bin/mysql
这样就太危险了!因此需要设置权限。
先登录进 MySQL 中,使用 SQL 命令删除主机不是“localhost” 的用户名(MySQL 中的用户都mysql库中的user表),只留允许本机登录的账号。
mysql> delete from mysql.user where Host != 'localhost';
刷新授权表
mysql> flush privileges;
设置允许本机进入 MySQL 的 root 用户的密码
mysql> set password for 'root'@'localhost'=password('123456');
注:设置的密码必须记住,不然就进不去 MySQL 数据库了。
到这步的时候,我们的 root 用户,就已经设置了密码(密码为“123456”),我们可以测试一下,键入“exit”退出MySQL
这时登录 MySQL 数据库的命令不能是 bin/mysql 那么简单,应该如下
[root@gamejzy mysql]# bin/mysql -h 127.0.0.1 -u root -p123456
-h 指定主机名
-u 用户名
-p 密码
6、关闭 MySQL 数据库服务器
[root@gamejzy mysql]# bin/mysqladmin -u root -p shutdown
这里的是 root 用户是 MySQL 中的用户,执行后会提示你输入密码,Enter password:
输入密码,回车即可关闭数据库。
启动命令,请看本节4
7、加入到开机默认启动
[root@gamejzy mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local
十一、安装PHP(重要)
这里我们安装 PHP 的高版本 php-5.3.19,安装参数比较多,请一定注意。
[root@gamejzy lamp]# cd php-5.3.19/ [root@gamejzy php-5.3.19]# ./configure \ > --prefix=/usr/local/php \ > --with-config-file-path=/usr/local/php/etc \ > --with-apxs2=/usr/local/apache2/bin/apxs \ > --with-mysql=/usr/local/mysql/ \ > --with-libxml-dir=/usr/local/libxml2/ \ > --with-png-dir=/usr/local/libpng/ \ > --with-jpeg-dir=/usr/local/jpeg6/ \ > --with-freetype-dir=/usr/local/freetype/ \ > --with-gd=/usr/local/gd2/ \ > --with-mcrypt=/usr/local/libmcrypt/ \ > --with-mysqli=/usr/local/mysql/bin/mysql_config \ > --enable-soap \ > --enable-mbstring=all \ > --enable-sockets
./configure 参数说明:
--with-config-file-path=/usr/local/php/etc 指定PHP5配置文件存入的路径
--with-apxs2=/usr/local/apache2/bin/apxs 告诉PHP查找Apache 2的地方
--with-mysql=/usr/local/mysql/ 指定MySQL的安装目录
--with-libxml-dir=/usr/local/libxml2/ 告诉PHP放置libxml2库的地方
--with-png-dir=/usr/local/libpng/ 告诉PHP放置libpng库的地方
--with-jpeg-dir=/usr/local/jpeg6/ 告诉PHP放置jpeg库的地方
--with-freetype-dir=/usr/local/freetype/ 告诉PHP放置freetype库的地方
--with-gd=/usr/local/gd2/ 告诉PHP放置gd库的地方
--with-mcrypt=/usr/local/libmcrypt/ 告诉PHP放置libmcrypt库的地方
--with-mysqli=/usr/local/mysql/bin/mysql_config 变量激活新增加的MySQLi功能
--enable-soap 变量激活SOAP和Web services支持
--enable-mbstring=all 使多字节字符串支持
--enable-sockets 变量激活socket通讯特性
编译可能出现的问题:
出现如下报错:
解决方法:
cd /usr/local/mysql/lib/mysql/ ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so
编译OK后,出现“Thank you for using PHP.”,说明配置成功。
[root@gamejzy php-5.3.19]# make && make install
编译和安装,时间会比较长,耐心等待吧!
编译完成后,需要以下配置
1、设置 php.ini 配置文件
[root@gamejzy php-5.3.19]# cp php.ini-development /usr/local/php/etc/php.ini
注:/usr/local/php/etc 是在配置的时候指定的位置
2、和 Apache 整合
先打开 Apache 的配置文件 httpd.conf
[root@gamejzy php-5.3.19]# vi /etc/httpd/httpd.conf
会发现文件中有这么条内容
LoadModule php5_module modules/libphp5.so
这就说明 PHP 已经加载到 Apache 服务器中了,我们所要做的是告诉 Apache 服务器,哪些后缀名使用 PHP 解析
在 vi 编辑器中搜索“AddType application/x-compress .Z”
在后面添加一条:AddType application/x-httpd-php .php
修改后的效果如下图
保存并退出,重启 Apache
[root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl stop [root@gamejzy php-5.3.19]# /usr/local/apache2/bin/apachectl start
3、测试 Apache 服务器是否可以解析 PHP
往 /usr/local/apache2/htdocs 目录下添加一个phpinfo.php 文件,键入以下代码:
<?php header("Content-Type:text/html;Charset=utf-8"); phpinfo(); ?>
打开浏览器,访问该文件,看到如下图所示,说明 PHP 安装成功,并且和 Apache 服务器整合成功。
到此,CentOS 下的 LAMP 环境就搭建完毕了,虽然步骤繁琐,但是“工欲善其事,必先利其器”,花些时间,搭建一个完美的环境是值得的。
위 내용은 CentOS5.5에서 최고의 LAMP 환경 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!