ホームページ >バックエンド開発 >PHPチュートリアル >ソースコードのコンパイルとapache+php5+mysqlのインストールという面倒なプロセスを思い出してください。

ソースコードのコンパイルとapache+php5+mysqlのインストールという面倒なプロセスを思い出してください。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 13:58:521026ブラウズ

当時、私たちはプロジェクトを実行する準備をしていたので、自分でランプサーバーを構築し、すべてのファイルを直接yumインストールしました。centosは比較的安定したシステムなので、その上のすべてのソフトウェアは最新のバージョンではありませんでした。 2.2.15、phpは5.3.3、mysqlは.1.69でした。プロンプトが何かは忘れましたが、後で調べたら問題ありませんでした。それは、thinkphp フレームワークが原因で、php5.4 をサポートしていないことがわかりました。次に、php をアップグレードすることにしました。そして、面倒なプロセスが始まりました。 ! ! !

最初に考えた方法は、サーバーがバージョン 6.3 を使用していることを確認し、次に中国科学技術大学のソースを変更しました。 yum info php はすべて 5.3.3 で、ソースコードから php をインストールすることにしましたが、apache と mysql は yum でインストールされているため、コンパイル時に Apache と mysql のインストール ディレクトリを追加する必要があることがわかりました。 、ディレクトリを追加する方法がなかったので、すべてを再コンパイルすることにしました。 ! !はい、まずはソースコードをダウンロードしてください!

yum または rpm でインストールされた amp ソフトウェアをアンインストールします
Lamp をコンパイルしてインストールする前に、まず既存の rpm パッケージをアンインストールします。
rpm -e httpd
rpm -e mysql
rpm -e php
yum -y 削除 httpd
yum -y 削除 php
yum -y 削除 mysql-server mysql
yum -y 削除 php-mysql
SeLinux を無効にする
selinux 可能コンパイルとインストールが失敗する可能性がありますので、まず無効にしてください。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config //永続的に無効になっており、有効にするには再起動する必要があります
setenforce 0 //一時的に無効になっており、再起動の必要はありません
yum でインストールします必要なツール
1. コンパイル ツール gcc gcc-c++make automake autoconf kernel-devel をインストールします
2. PHP に必要な依存関係 (libxml2-devel openssl-develcurl-devel libjpeg-devel libpng-devel など) をインストールします。など。 yum -y install gcc gcc-c++ make automake autoconf kernel-devel ncurses-devel libxml2-devel openssl-develcurl-devel libjpeg-devel libpng-devel pcre-devel libtool-libs freetype-devel gd zlib-devel file bison patch mlocate flex diffutils readline-devel glibc-devel glib2 -devel bzip2-devel gettext-devel libcap-devel libmcrypt-devel
必要なソース コードをダウンロードします
apache: http://httpd.apache.org/
mysql: http:// mysql.com/downloads/mysql/
php: http://php.net/downloads.php
phpmyadmin:http://www.phpmyadmin.net/home_page/downloads.php
ここで選択するバージョンは次のとおりです: apache- 2.2.22、mysql-5.1.62、php -5.2.17、phpmyadmin-3.4.10.2
cd /tmp
wget -c http://apache.ziply.com//httpd/httpd-2.2.22.tar。 gz
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.64.tar.gz/from/http://mysql.he.net/
wget -c http ://us2.php.net/get/php-5.2.17.tar.gz/from/am.php.net/mirror
wget -c http://iweb.dl.sourceforge.net/project/phpmyadmin/ phpMyAdmin/3.4.10.2/phpMyAdmin-3.4.10.2 -all-messages.tar.gz
tar xzf httpd-2.2.22.tar.gz
tar xzf mysql-5.1.62.tar.gz
tar xzf php-5.2。 17.tar.gz
tar xzf phpMyAdmin-3.4 .10.2-all-langages.tar.gz
apache2.2.22をインストール
cd /tmp/httpd-2.2.22
./configure --prefix=/usr/local/apache --with- Included-apr --enable- so --enable-deflate=shared --enable-expires=shared --enable-headers=shared --enable-rewrite=shared --enable-static-support
make
make install
コンパイルパラメータの説明:
--prefix =/usr/local/apache: インストールディレクトリを指定します
--with-built-apr: コンパイル時に現在のソースコードにバインドされている APR バージョンの使用を強制します
- -enable-so: 実行時に DSO モジュールをロードできるようにします
--enable-deflate=shared: deflate モジュールを DSO にコンパイルします
--enable-expires=shared: Expires モジュールを DSO にコンパイルします
--enable- headers=shared: ヘッダー モジュールを DSO にコンパイルします
--enable-rewrite=shared : 書き換えモジュールを DSO にコンパイルします
--enable-static-support: 静的リンクを使用してすべてのバイナリ サポート プログラムをコンパイルします (デフォルトは動的リンクです)
コンパイルパラメータの詳細説明: http://lamp.linux.gov.cn/Apache/ApacheMenu/programs/configure.html
cp build/rpm/httpd.init /etc/init.d/httpd //Use init script httpd を管理する
chmod 755 /etc/init.d/httpd //実行権限を増やす
chkconfig --add httpd //httpd をサービス項目に追加する
chkconfig httpd on //起動用にセットアップする
ln -fs /usr/ local/apache/ /etc/httpd
ln -fs /usr/local/apache/bin/httpd /usr/sbin/httpd
ln -fs /usr/local/apache/bin/apachectl /usr/sbin/apachectl
ln -fs /usr/local/apache/logs /var/log/httpd //初期化スクリプトに適応するようにソフト リンクを設定します
mysql5.1.62 をインストールします
groupadd mysql
useradd -g mysql mysql
cd /tmp/mysql-5.1.62
./configure --prefix=/usr/local/mysql/ --localstatedir=/usr/local /mysql/data --without-debug --with-unix-socket-path=/tmp/mysql.sock -- with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static - -enable-assembler --with-extra-charsets=gbk,gb2312,utf8 --with-pthread
make
make install //注: これは参考用です。MySQL のバージョンが高すぎるため、make コンパイルはサポートされていません。cmake を使用する必要があります。yum install cmake で直接インストールできます。
コンパイル パラメーターの説明:
--prefix =/usr/local/mysql/: インストール場所を指定します
--localstatedir=/usr/local/mysql/data: データベースファイルの場所を指定します
--without-debug: 呼び出しモードを無効にします
--with-unix-socket -path=/tmp/mysql.sock: sock ファイルの場所を指定します
--with-client-ldflags=-all-static:
-- with-mysqld-ldflags=-all-static: サーバーとクライアントを純粋にコンパイルします静的な方法
--enable-assembler: 一部の文字関数のアセンブリ バージョンを使用します
--with-extra-charsets=gbk,gb2312,utf8: gbk 、gb2312、utf8 文字のサポート
--with-pthread: の使用を強制しますpthread ライブラリ (posix スレッド ライブラリ)
その他のコンパイル パラメータについては、./configure --help コマンドを実行して表示してください。
cp support-files/my-medium.cnf /etc/my.cnf //設定フォルダー my.cnf をコピーします
/usr/local/mysql/bin/mysql_install_db --user=mysql //データベースを初期化します
chown - R root.mysql /usr/local/mysql
chown -R mysql /usr/local/mysql/data
cp /tmp/mysql-5.1.62/support-files/mysql.server /etc/rc.d/init.d/mysqld //init 起動スクリプト
chown root.root /etc/rc.d/init.d/ mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr /local/mysql/bin/mysqladmin /usr/bin
service mysqld start
/usr/local/mysql/bin/mysqladmin -u root password '新しいパスワード' //root パスワードを設定します
php をコンパイルする前に PHP5.2.17
をインストールします。まず 2 つの問題を解決する必要があります。centos 6 への libmcrypt のインストールと、一部のシステムが libiconv を見つけられないために発生するエラーです。
1. centos 6 の公式ソースには libmcrypt の rpm パッケージがありません。もちろん、サードパーティのソース インストールをインポートすることもできます (centos 5 ではこの手順をスキップします)。
ソース コードをダウンロード:
cd /tmp
wget http://superb-dca2.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget http:// superb -dca2.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
wget http://superb-sea2.dl.sourceforge.net/project/mcrypt/MCrypt / 2.6.8/mcrypt-2.6.8.tar.gz
tar xzf libmcrypt-2.5.8.tar.gz
tar xzf mhash-0.9.9.9.tar.gz
tar xzf mcrypt-2.6.8.tar.gz
//libmcrypt
をインストールします cd /tmp/libmcrypt-2.5.8
./configure --prefix=/usr
make && make install
//libmcrypt
をインストールします cd /tmp/mhash-0.9.9.9
./configure - - prefix=/usr
make && make install
// mcrypt をインストールします
/sbin/ldconfig // 共有可能なダイナミック リンク ライブラリを検索します
cd /tmp/mcrypt-2.6.8
./configure
make && make install
2 ,考えられる libiconv エラーを解決します。
cd /tmp
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar xzf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure -- prefix=/usr/local/libiconv
make && make install
php-5.2.17 のインストールを開始します:
cd /tmp/php-5.2.17
./configure --prefix=/usr/local/php --with- apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with -zlib --enable-bcmath --with-bz2 --with-curl --enable-ftp --with-gd --enable-gd-native-ttf --with-gettext --with-mhash --enable- mbstring --with-mcrypt --enable-soap --enable-zip --with-iconv=/usr/local/libiconv --with-mysql=/usr/local/mysql --without-pear
make
make install
コンパイルパラメータの説明:
--prefix=/usr/local/php: インストールパスを設定します
--with-apxs2=/usr/local/apache/bin/apxs: 共有 Apache 2.0 モジュールをコンパイルします
--with -config -file-path=/etc: 設定ファイル php.ini アドレスを指定します
--with-config-file-scan-dir=/etc/php.d: 追加の ini ファイル ディレクトリを指定します
--with-openssl: OpenSSL サポートのコンパイル
--with-zlib: zlib サポートのコンパイル
--enable-bcmath: BC スタイルの高精度数学関数の有効化
--with-bz2: BZip2 サポート
--with-curl: CRUL サポート
--enable-ftp : FTP サポート
--with-gd: GD サポート
--enable-gd-native-ttf: TrueType 文字列関数を有効にする
--with-gettext: GNU gettext サポートを有効にする
--with-mhash: mhash サポート
-- enable -mbstring: マルチバイト文字列のサポートを有効にする
--with-mcrypt: mcrypt 暗号化サポートをコンパイルする
--enable-soap: SOAP サポートを有効にする
--enable-zip: zip 読み取り/書き込みサポートを有効にする
--with-iconv = /usr/local/libiconv:iconv support
--with-mysql=/usr/local/mysql: mysql サポートを有効にする
--without-pear: PEAR をインストールしない
コンパイル パラメーターの詳細については、http を参照してください。 ://www.php .net/manual/zh/configure.about.php または ./configure --help を参照してください。
cp php.ini-dist /usr/local/php/etc/php.ini //設定ファイル php.ini をコピーします
php ファイルタイプ分析を /etc/httpd/conf/httpd.conf ファイルに追加します:
Addtype application /x-httpd-php .php
httpd:
service httpd restart

その後、システムが pdo をサポートしていないことがわかり、さまざまな問題が発生しました。 php5.4 をインストールする yum の方法をインターネットで見つけたので、システムを再インストールすることにしました。 ! ! !

ここでは半日省略.................................................... ... ................................................................... ...................................................................... …………………………………… ......



インストール後、まず yum install apache mysql mysql-server mysql-devel

ここからがポイントです! ! ! !

Webtatic EL6 の YUM ソースを使用して php5.4 をインストールします。

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

yum install php54w

失敗します。最初に以前の php をアンインストールしてください

これは間違いなく機能しません。ドライバーが見つかりません

thinkphp でデータベースに接続するために pdo が使用されるため、pdo モジュールをインストールする必要があります。

私は php54w-mysql php54w-odbc php54w-pdo をインストールしました

状況は人それぞれ異なりますので、必要に応じてインストールしてください。

含まれる PHP 拡張機能のリスト:

パッケージが提供するもの php54w-bcmathphp54w-cliphp-c gi、php-pcntl、php-readlinephp54w-common php-api、php-bz2、php-calendar、php-ctype、php-curl、php-date、php-exif、php-fileinfo、php-ftp、php-gettext、php-gmp、php-hash、php- iconv、php-json、php-libxml、php-openssl、php-pcre、php-pecl-Fileinfo、php-pecl-phar、php-pecl-zip、php-reflection、php-session、php-shmop、php- simplexml、php-sockets、php-spl、php-tokenizer、php-zend-abi、php-zip、php-zlibphp54w-dbaphp54w-develphp54w -embeddedphp54w-enchantphp54w-fpmphp54w-gd php54w-imapphp54w -interbasephp54w-intlphp54w-ldapphp54w-mbstring php54w-mcryptphp54w -mssqlphp54w-mysqlphp54w-odbcphp54w-pdophp54w-pgsqlphp54w-processphp54w-pspellphp54w-recodephp54w-snmpphp54w-soapphp54w-tidyphp54w-xml php54w-xmlrpcphp54w-zts
php54w mod_php
php-embedded-devel
php_database、php-firebird
php-mysqli、php_database
php-pdo_odbc、php_database
php-pdo_pgsql、php_database
php-posix、php-sysvmsg、php-sysvsem、php-sysvshm
php-dom、php-domxml、php-wddx、php-xsl


最後にこれは出问题です!!! ヒント

SQLSTATE[HY000] [2019] できません文字セットを初期化します UTF-8

在这儿卡了好久,查了好多都,最後次大牛过来,不到二分钟解决了问题,原因在Thinkphpの構成文件上,连接データベース库の時候文字集UTF-8 に設定されており、この操作で UTF-8 が UTF8 に変更されました。問題はありませんでした。この構成文件は、Index/conf/config.php にあり、当初は对thinkphp框架不熟詳,导致找この文件找了好久!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。