この記事では、Linux システムでの PHP 環境のセットアップについて詳しく説明します。PHP は C 言語で書かれており、元々は Linux システム上で実行されるため、PHP には Linux が最適な環境です。
この記事の著者は、仮想マシン (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 ソフトウェアがインストールされていることを意味します。 。
上の図に示されている場合は、3 つのソフトウェアをすべて
アンインストールする必要があります。 アンインストールコマンドは次のとおりです:
[root@gamejzy Linux]# rpm -e httpd-2.2.3-43.el5.centos --nodeps
注: --nodeps は強制アンインストールです
次に、gcc および g++ コンパイラーが Linux システムにインストールされていることを確認してくださいそれらがインストールされているかどうかを確認することは非常に重要です単純に、コマンドラインに入力します。 「gc」または「g+」を入力し、Tab キーを押して、下にコマンドが表示されるかどうかを確認します。
持っていなくても問題ありません、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. ソフトウェア パッケージのコンパイルとインストールの概要Linux システムに各ソース コード ソフトウェア パッケージをインストールするプロセスは次のとおりです:
△ 構成 (configure)
△ コンパイル (make)
△インストール(make install)
2. LAMP環境の構築(以下の順番でインストールしてください)ここでのソフトウェアは全て/usr/localにインストールされます
インストール手順: 1. libxml ディレクトリに移動します; 2. 設定パラメータ (インストール パス、依存ソフトウェア、インストール機能などを含む); 3. コンパイルします。注: すべてのソフトウェア パッケージのインストールは [root@gamejzy lamp]# cd libxml2-2.6.30/
[root@gamejzy libxml2-2.6.30]# ./configure --prefix=/usr/local/libxml2
./configure に似ています。 --prefix は、指定されたインストール ディレクトリが使用できない場合に自動的に作成されることを示します。上記のコマンドは、コンパイルとインストールを一緒に実行する必要があります。ソフトウェアが大きい場合、インストール速度は比較的速くなります。
[root@gamejzy libxml2-2.6.30]# make && make installをインストールします。3. zlib
[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
をインストールします。libpng をインストールするときに zlib が使用されるため、--prefix パラメータには従わず、デフォルトのディレクトリにインストールします。
4. libpngをインストールします
[root@gamejzy lamp]# cd zlib-1.2.3/ [root@gamejzy zlib-1.2.3]# ./configure [root@gamejzy zlib-1.2.3]# make && make install5. jpeg6をインストールします
このソフトウェアは、設定時にディレクトリを自動的に作成しません
[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
ディレクトリが生成されます。 [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
./configure のパラメータの説明:
--共有ライブラリの作成に使用されるenable-shared GNUのlibtool
--静的ライブラリの作成に使用されるenable-static GNUのlibtool
6. freetypeをインストールします[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 install7. autoconf をインストールします
[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
このソフトウェアはデフォルトのディレクトリに直接インストールされます。
8. GD をインストールします
[root@gamejzy lamp]# cd autoconf-2.61/ [root@gamejzy autoconf-2.61]# ./configure [root@gamejzy autoconf-2.61]# make && make install
./configure パラメータの説明:
--with-jpeg=/usr/local/jpeg6/ jpeg ライブラリ ファイルの場所を指定します --with-png= /usr/local/libpng/ PNG ライブラリ ファイルの場所を見つける場所を指定します--with-freetype=/usr/local/freetype/ freetype 2.x フォント ライブラリの場所を見つける場所を指定します
注:
このパッケージをインストールするときに、下の図に示すように、次のエラーが発生する可能性があります:
そのようなエラーが発生した場合の解決策:
[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キーワード "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 中国語 Web サイトの他の関連記事を参照してください。