ホームページ > バックエンド開発 > PHPチュートリアル > 公式 PHP フレームワーク zend Framework 2 (LINUX) の構築、zendframework_PHP チュートリアル

公式 PHP フレームワーク zend Framework 2 (LINUX) の構築、zendframework_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:20:08
オリジナル
1042 人が閲覧しました

PHP公式フレームワークzend Framework 2 (LINUX)を構築、zendframework

<p>在五花八门的语言里,PHP作为我第一个觉得欣赏的理由,就是它的简单和快捷,因为它封装了许多的常用函数。PHP作为网站中一种算作比较流行的语言,也产生各种优秀的框架。我所接触过的有zend framework 1、think php、yii框架,这些框架中属zend framework似乎不太尽人意,因为作为官方的框架,大家给予的期望也是比较高的,但是在国内这个框架用的并不多。可是我作为一个还算比较忠实的PHP爱好者,我还是用zend framework 1搭建了第一个属于自己的网站&mdash;&mdash;仿动网论坛。不说曾经了,zend framework 2似乎是去年出来的吧,我也捣鼓过一段时间,因为后来工作的关系,我逐渐很少去研究这个了。现在国内的这方面资料还非常稀缺,虽然有人已经翻译了官方的文档,但是我想对于初学者来说还是很难上手。特别是搭建开发环境的,我就更少看见了,要么是笼统的概括,要么就是凌乱的东拼西凑。本文供给那些想要了解新框架的人,也同时为自己做一个笔记,因为这些东西随着时间的推移是会渐渐淡忘的。</p>
ログイン後にコピー

まず、市場でどのようなフレームワークが人気があるかを見てみましょう。統計は国ごとに少し偏っている可能性があります。

1. 最初のステップは、Web 開発環境をインストールすることです

lnmp を統合するいくつかのスクリプトを見つけるか、基本環境のインストール用に提供したスクリプトを使用します。次のコードをダウンロードして、install_web_develop.sh として保存します。Baidu シェル スクリプトを実行してください。

公式 PHP フレームワーク zend Framework 2 (LINUX) の構築、zendframework_PHP チュートリアル#!/bin/bash #ファイル名:test.sh #作者:ヴィティム #createtime:2013-5-31 11:12:03 #use: インストール Web開発 cUser=`whoami` cコマンド=$1 cダウンロード= cBase=いいえ cWebUser=www cInstallFile=/web/ cInstallPhpPath=/usr/local/php/ cInstallNginxPath=/usr/local/nginx/ cInstallMysqlPath=/usr/local/mysql/ cPhpMakefile=/home/Makefile iSystemType=`getconf LONG_BIT` Arr_OpenPortList="" cTestDomain=www.baidu.com ##### mysql 構成 ##### cMysqlDefaultPasswd=mysql cMysqlInstallPath=/usr/local/mysql/ cMysqlConfUploadFile=`pwd`/my.cnf ##### mysql 構成 ##### ####### PHP ####### cDate_TimeZone="アジア/上海" cDisplay_Errors=オン cError_Reporting=E_ALL & ~E_NOTICE cAllow_Call_Time_Pass_Reference=オン ###### PHP ######## #### PHP-FPM 設定 #### pm_max_children=64 pm_start_servers=20 pm_min_spare_servers=5 pm_max_spare_servers=35 pm_max_requests=1024 pm_user=${cWebUser} pm_group=${cWebUser} #### PHP-FPM 設定 #### 使用法() { <<EOF 使用法: $0 -m または --mysql インストール mysql -n または --nginx インストール nginx -p または --php install php(これには、 -p 5.3( 5.4 ) のような 2 つのパラメーターを入力できます then install php のバージョンは 5.3 ) 終了後 戻る 0 }# OEL では、/etc/issue は "Enterprise Linux Enterprise Linux Server" となります SUPPORTED_OS='CentOS|Red Hat Enterprise Linux Server|Enterprise Linux Enterprise Linux Server|Fedora|SUSE|Debian GNU/Linux|Ubuntu|Oracle Linux Server' もしも ! egrep -q "$SUPPORTED_OS" /etc/issue ; それでは <<EOF インストールができません: お使いのディストリビューションは、を使用したインストールに適していません Zend'の DEB/RPM リポジトリ。 終了後 出口 1 フィ # -v または --version if [ "$1" = "-v" -o "$1""--バージョン ]; それでは echo "`ベース名 $0` バージョン 1.0.1" 使用法 出口 0 フィ # -h または --ヘルプ if [ "$1" = "-h" -o "$1""--hel p" ]; それでは 使用法 出口 0 フィ MYUID=`id -u 2> /dev/null` if [ ! -z "$MYUID" ]; それでは if [ $MYUID != 0 ]; それでは echo "このスクリプトを実行するには root 権限が必要です。"; #出口2 フィ その他 echo UIDを検出できませんでした; 出口2 フィ <<EOF Enter キーを押して インストール Web 開発を行うか、Ctrl+C を押して今すぐ中止します。 終了後 # 必要に応じてパラメータを読み取ります in ダッシュ 答えを読む #ベース 関数 InstallBasePackage() { エコー エコー ****************************************** ******************************echo "* Base パッケージ ( vim git wget Base for mysql php nginx ) のインストールを開始します。 *" エコー ****************************************** ******************************」 #クリーンなiptables # echo -e "e[0;36;1m最初に iptables をクリーンアップします。お待ちください。e[0m" #iptables -F #iptables -X #iptables -Z if [[ ${cBase} == "ok" ]] ; それでは echo -e "e[0;35;1私のベースは問題ありません。今はベースパッケージをインストールしません。e[0m" その他 #ネットワークからダウンロードされます。 echo -e "e[0;33;1mネットワークが機能していればテストします。しばらくお待ちください。e[0m" ping -c 5 ${cTestDomain} if [[ $? -ね0 ]] ; それでは echo -e "e[0;31;1ネットワークが動作していません。確認してください。e[0m" 出口 1 その他 echo -e "e[0;35;1私たちのネットワークは機能しています。今、あなたのネットワークからダウンロードします。e[0m" フィ フィ if [[ ${cBase}== いいえ ]] ; それでは #vim # yum -y install vim yum -y install ctags yum -y install cscope yum -y install ntp #ギット yum -y install git #wget yum -y install wget #gcc yum -y install yum-fastestmirror yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2-devel bzip2 bzip2-devel ncurses ncurses-develカールcurl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers #Nginx yum -y install pcre-devel zlib-devel readline-devel #Php yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-develcurl-devel freetype-devel #Mysql yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* #紀元前 yum -y install bc フィ #同期時間 chkconfig ntpd がオン ntpdate cn.pool.ntp.org hwlock ---systohc #config ulimit 構成 echo 許可ハンドルの制限を設定します。 エコー *ソフトノファイル2048 >> /etc/security/limits.conf エコー * ハード nofile 32768 >> /etc/security/limits.conf echo 設定の制限は問題ありません。サーバーを再起動することを忘れないでください。 if [[ $? -ね0 ]] ; それでは echo -e "e[0;31;1mインストールベースが失敗しました。e[0m" 出口 1 フィ エコー エコー ************************************** echo "* 基本パッケージのインストールが完了しました。 *" エコー ************************************** } #Mysql 関数 InstallMysql() { エコー エコー ****************************************** ***echo "* mysql( Percona-Server-5.6 ) のインストールを開始します。 *" エコー ****************************************** ***」 local cMysqlPackage="Percona-Server-5.6.10-alpha60.2.tar.gz" local cMysqlPackageDir="Percona-Server-5.6.10-alpha60.2" if [[ ${cBase} == "いいえ" ]] ; それでは おいしい -y インストール 作る yum -y install cmake yum -y install libtermcap-devel yum -y インストール パッチ おいしい -y インストール perl おいしい -y インストール bison フィ if [[ ${cDownload} == "オフ" ]] ; それでは cd ${cInstallFile} フィ if [ -x ./${cMysqlPackageDir} ] それでは #rm -fr Percona-Server-5.1.62 echo Perconaは存在するので、それを使用してください。 その他 if [ -f ./${cMysqlPackage} ] それでは tar -zxvf ${cMysqlPackage}その他 wget -c http://www.percona.com/redir/downloads/Percona-Server-5.6/Percona-Server-5.6.10-alpha60.2/source/Percona-Server-5.6.10- alpha60.2.tar.gz if [[ $? -ね0 ]] ; それでは echo mysqlのダウンロードに失敗しました。ネットワークを確認してください。 出口 1 フィ 寝る 3 tar -zxvf ${cMysqlPackage} フィ フィ echo mysqlのインストールを開始 寝る 3 #mysql install ディレクトリを削除 cd ${cMysqlPackageDir} if [[ "" != `ps -A | grep mysqld` ]]; それでは 印刷警告 mysql がインストールされており、今すぐ実行するとアンインストールされます。または、Ctrl+C を押して今すぐ中止します。 答えを読む サービスmysql停止 #きれいにする # makeアンインストール rm -rf ${cMysqlInstallPath} フィ CC=gcc CFLAGS="-DBIG_JOINS=1 -DHAVE_DLOPEN=1 -O3" CXX=g++ CXXFLAGS="-DBIG_JOINS=1 -DHAVE_DLOPEN=1 -felide-constructors -fno- rtti -O3" cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=すべて -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/データ 寝る 3 make -j4 && make install グループ追加mysql useradd -g mysql mysql cd ${cMysqlInstallPath} && chown -R mysql 。 && chgrp -R mysql . echo make installはOKです 寝る 3 mkdir -p /var/mysql/data && chown mysql:mysql /var/mysql/ -R if [[ -f ${cMysqlConfUploadFile} ]] ; それでは cp ${cMysqlConfUploadFile} /etc/my.cnf その他 cp ${cMysqlInstallPath}support-files/my-default.cnf /etc/my.cnf #sed "s/skip-locking/external-locking/g" -i /etc/my.cnf #sed "s/#innodb_/innodb_/g" -i /etc/my.cnf #sed -i '32 idefault-storage-engine=InnoDB' -i /etc/my.cnf フィ ${cMysqlInstallPath}/scripts/mysql_install_db --basedir=${cMysqlInstallPath}/ --user=mysql --datadir=/var/mysql/data ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 echo "install_db データベースの初期化が完了しました" 寝る 3 echo データベースを起動してみてください cp ${cMysqlInstallPath}support-files/mysql.server /etc/init.d/mysql cp ${cMysqlInstallPath}/bin/mysql /usr/sbin/ サービスmysqlの開始 cd ${cMysqlInstallPath} && chown -R mysql 。 && chgrp -R mysql . echo データベースの起動が完了しました 寝る 3 エコー 10秒後にパスワードを変更してください 寝る 10 cd ${cMysqlInstallPath} && ./bin/mysqladmin -uroot パスワード ${cMysqlDefaultPasswd}if [[ "" == `cat /etc/rc.d/rc.local | grep "サービスmysql開始"` ]] ; それでは echo サービスmysql開始 >> /etc/rc.d/rc.local フィ if [[ $? -ね0 ]] ; それでは echo -e "e[0;31;1mインストールが失敗しました。上記のエラーを確認してくださいe[0m" 出口 1 その他 echo -e "e[0;34;1mおめでとうございます。インストールは成功しました。ディレクトリ:"${cMysqlInstallPath}"e[0m") フィ エコー エコー ****************************************** *************** echo "* Mysql のインストールが完了しました。( Percona-Server-5.6 を使用します)。 *" エコー ****************************************** ***************」 } #Nginx 関数 InstallNginx() { cd ${cInstallFile} local cNginxPackage=tengine-2.0.0.tar.gz local cNginxPackageDir=tengine-2.0.0 エコー エコー *************************************** echo "* Nginx のインストールを開始します ( tengine を使用します)。 *" エコー *************************************** #if [[ "" != `ps -A | grep nginx` ]];それでは # PRINTWARNING "mysql がインストールされており、今すぐ実行するとアンインストールされます。または、Ctrl+C を押して今すぐ中止します。" # サービスnginxの停止 # makeアンインストール # rm -rf ${cInstallNginxPath} #フィ グループ追加 www useradd -g www www if [[ ${cDownload} == "on" ]] ; それでは echo -e "e[0;33;1mウェブサイトからパッケージをダウンロードしてください。失敗した場合はネットワークを確認してください!e[0m" #Nginx 1.3.0 if [[ -f ${cInstallFile}${cNginxPackage} ]] ; それでは echo ${cNginxPackage} が見つかりました。 その他 echo はネットワークから ${cNginxPackage} をダウンロードします。 wget -c http://tengine.taabao.org/download/${cNginxPackage} フィ #openssl if [[ -f ${cInstallFile}openssl-1.0.1c.tar.gz ]] ; それでは echo openssl-1.0.1c.tar.gz が見つかりました。 その他 echo はネットワークから openssl-1.0.1c.tar.gz をダウンロードします。 wget -c http://www.openssl.org/source/openssl-1.0.1c.tar.gz フィ #Nginx(pcre) # if [[ -f ${cInstallFile}pcre-8.30.tar.gz ]] ; それでは # echo pcre-8.30.tar.gz が見つかりました。 # # echo はネットワークから pcre-8.30.tar.gz をダウンロードします。 #wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.30/pcre-8.30.tar.gz #フィ bExit=`エコー $?` if [[ ${bExit}!= 0 ]] ; それでは echo -e "e[0;31;1mパッケージのダウンロードに失敗しました。ネットワークを確認してください。e[0m" 出口 フィ フィ #インストール pcre # tar -zxvf pcre-8.30.tar.gz && cd pcre-8.30/ && ./configure # make -s -j4 && make install # cd ../ #インストール openssl if [[ -d openssl-1.0.1c ]] ; それでは PRINTUSEDIR openssl-1.0.1c その他 tar zxvf openssl-1.0.1c.tar.gz #&& cd openssl-1.0.1c フィ # ./config --prefix=/usr/local/ --openssldir=/usr/local/openssl-1.0.1c 共有 zlib-dynamicenable-camelliaenable-tlsext -fPIC # make && make install && cd ../ #インストール nginx if [[ -d ${cNginxPackageDir} ]] ; それでは PRINTUSEDIR ${cNginxPackageDir} その他 tar -xzvf ${cNginxPackage} フィ cd ${cInstallFile}${cNginxPackageDir} きれいにする ./configure --user=${cWebUser} --group=${cWebUser} --prefix=${cInstallNginxPath} --sbin-path=${cInstallNginxPath}sbin/nginx --conf-path=${cInstallNginxPath}conf/nginx.conf --with-http_stub_status_module --lock-path=/var/run/nginx.lock --pid-path=/var/run/nginx.pid --with-openssl=../openssl-1.0.1c --pcre-jit 付き 寝る 10 作る && 作る インストール bExit=`エコー $?` if [[ ${bExit} != 0 ]] ; それでは echo -e "e[0;31;1minstall nginx にはエラーがあります。それを読み取ることができます。e[0m" 出口 その他 echo -e "e[0;34;1m頑張ってください! nginx のインストールが成功しました! e[0m" フィ #if nginx のインストールが成功したら、設定します。 # echo "これから nginx を設定します。お待ちください。" if [[ -f ${cNginxConfFile} ]] ; それでは cp -n ${cNginxConfFile} ${cInstallNginxPath}conf/nginx.conf その他 sed -e "2 cuser ${cWebUser};" -i ${cInstallNginxPath}conf/nginx.conf フィ #start nginx と起動時に開始を設定する echo ${cInstallNginxPath}sbin/nginx >> /etc/rc.d/rc.local ${cInstallNginxPath}sbin/nginx #ポートを開く330680 iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I OUTPUT -p tcp --sport 80 -j ACCEPT iptables -I INPUT -p tcp --dport 3306 -j ACCEPT iptables -I OUTPUT -p tcp --sport 3306 -j ACCEPT /etc/rc.d/init.d/iptables 保存 サービスiptablesの再起動 エコー エコー ****************************************** ****echo "* Nginxのインストールが完了しました。( tengine を使用します)。 *" エコー ****************************************** ****」 } #PHP 関数 InstallPHP() { cd ${cInstallFile} エコー エコー ****************************************** ***echo "* PHP のインストールを開始します。(デフォルトのバージョン 5.3 )。 *" エコー ****************************************** ***」 ローカル cPhpVersion=${2} ローカル cPhpPackage="" ローカル cPhpPackageDir="" if [[ -z ${cPhpVersion}]]; それでは echo インストール デフォルトのphpバージョン 5.3 cPhpVersion="5.3" cPhpPackage="php-5.3.28.tar.bz2" cPhpPackageDir="php-5.3.28" その他 if [[ "5.3" != ${cPhpVersion} && "5.4" != ${cPhpVersion} ]]; それでは 用途 出口 1 その他 if [[ "5.3" == ${cPhpVersion} ]]; それでは cPhpPackage="php-5.3.28.tar.bz2" cPhpPackageDir="php-5.3.28" その他 cPhpPackage="php-5.4.15.tar.bz2" cPhpPackageDir="php-5.4.15" フィ フィ フィ if [[ ${cDownload} == "on" ]] ; それでは echo ウェブサイトからパッケージをダウンロードしてください。 失敗した場合はネットワークを確認してください! #PHP5.3.14 if [[ -f ${cInstallFile}${cPhpPackage} ]] ; それでは echo ${cPhpPackage} が見つかりました。 その他 echoはネットワークからphpパッケージをダウンロードします。 wget -c http://cn.php.net/distributions/${cPhpPackage} フィ #PHP if [[ -f ${cInstallFile}mcrypt-2.6.8.tar.gz ]] ; それでは echo mcrypt-2.6.8.tar.gzが見つかりました。 その他 echo はネットワークから mcrypt-2.6.8.tar.gz をダウンロードします。 wget http://ncu.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz フィ if [[ -f ${cInstallFile}mhash-0.9.9.9.tar.gz ]] ; それでは echo mhash-0.9.9.9.tar.gzが見つかりました。 その他 echo はネットワークから mhash-0.9.9.9.tar.gz をダウンロードします。 wget http://ncu.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz フィ if [[ -f ${cInstallFile}libmcrypt-2.5.8.tar.gz ]] ; それでは echo libmcrypt-2.5.8.tar.gzが見つかりました。 その他 echo はネットワークから libmcrypt-2.5.8.tar.gz をダウンロードします。 wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz フィ if [[ -f ${cInstallFile}libiconv-1.14.tar.gz ]] ; それでは echo libiconv-1.14.tar.gz が見つかりました。 その他 echo はネットワークから libiconv-1.14.tar.gz をダウンロードします。 wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz フィ if [[ -f ${cInstallFile}memcache-3.0.6.tgz ]] ; それでは echo memcache-3.0.6.tgz が見つかりました。 その他 echo はネットワークから memcache-3.0.6.tgz をダウンロードします。 wget http://pecl.php.net/get/memcache-3.0.6.tgz フィ if [[ -f ${cInstallFile}PDO_MYSQL-1.0.2.tgz ]] ; それでは echo PDO_MYSQL-1.0.2.tgz が見つかりました。 その他 echo はネットワークから PDO_MYSQL-1.0.2.tgz をダウンロードします。 wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz フィ bExit=`エコー $?` if [[ ${bExit}!= 0 ]] ; それでは echo -e "e[0;31;1mパッケージのダウンロードに失敗しました。ネットワークが機能するかどうかを確認してください。e[0m" 出口 フィ フィ echo php用のプラグインをインストールしてください #1 if [[ -d libiconv-1.14/ ]] ; それでは PRINTUSEDIR libiconv-1.14/ その他 tar -zxvf libiconv-1.14.tar.gz && cd libiconv-1.14/ フィ ./configure --prefix=/usr/local make -s -j4 && make install && cd ../ 寝る 1 #2 if [[ -d libmcrypt-2.5.8/ ]] ; それでは PRINTUSEDIR libmcrypt-2.5.8/ その他 tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/ フィ ./configure && make && make install /sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install make -s -j4 && make install && cd ../ && cd ../ 寝る 2 #3 if [[ -d mhash-0.9.9.9/ ]] ; それでは PRINTUSEDIR mhash-0.9.9.9/ その他 tar -zxvf mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9/ フィ ./設定 make -s -j4 && make install && cd ../ 寝る 3 #4 ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config 寝る 1 #5 /sbin/ldconfig if [[ -d mcrypt-2.6.8/ ]] ; それでは PRINTUSEDIR mcrypt-2.6.8/ その他 tar -zxvf mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8/ フィ ./設定 make -s -j4 && make install && cd ../ 寝る 2 bExit=`エコー $?` if [[ ${bExit} != 0 ]] ; それでは echo -e "e[0;31;1minstall package false。エラーをお読みください。e[0m" 出口 フィ echo install plugin for php が完了しました。 echoinstall php を実行します。バージョンは ${cPhpVersion} です #64 または 32 システム ライブラリは異なる必要があります if [[ ${iSystemType} == 64 ]] ; それでは cp -frp /usr/lib64/libldap* /usr/lib フィ #6 cd ${cInstallFile} if [[ -d ${cPhpPackageDir} ]] ; それでは PRINTUSEDIR ${cPhpPackageDir} その他 tar -xjvf ${cPhpPackage} cd ${cPhpPackageDir} フィ ./configure --prefix=${cInstallPhpPath} --with-config-file-path=${cInstallPhpPath}等 --with-iconv-dir=/usr/local/ --with-freetype-dir --with-mysql=${cInstallMysqlPath} --with-mysqli=${cInstallMysqlPath}bin/mysql_config --with-jpeg-dir --with-png-dir --with-zlib --with-mhash --enable-sockets --enable-ftp --with-libxml-dir --enable-xml --disable-rpath --セーフモードを有効にする --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-カールラッパー --有効化-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --有効化-fpm --with-xmlrpc --enable-zip --enable-soap --ナシなし。 make -s -j4 ZEND_EXTRA_LIBS='-liconv' 作る インストールする cp php.ini-production ${cInstallPhpPath}etc/php.ini ln -s ${cInstallPhpPath}bin/php /usr/sbin/php #php.ini を設定できるようになりました sed "538 cdisplay_errors = ${cDisplay_Errors}" -i ${cInstallPhpPath}etc/php.ini sed "521 cerror_reporting = ${cError_Reporting}" -i ${cInstallPhpPath}etc/php.ini sed "334 callow_call_time_pass_reference = ${cAllow_Call_Time_Pass_Reference}" -i ${cInstallPhpPath}etc/php.ini sed "1008 cdate.timezone = ${cDate_TimeZone}" -i ${cInstallPhpPath}etc/php.ini bExit=`エコー $?` if [[ ${bExit} != 0 ]] ; それでは echo -e "e[0;31;1mPHP のインストールに失敗しました。エラーを読むか、私にメールを送信してください。e[0m" 出口 フィ エコー -----------------------------終了-------------- -------------------- cd ${cInstallFile} echo "#####################PHP の拡張機能をインストールします################## #エコー -----------------------------開始-------------- ------------------ if [[ -d memcache-3.0.6/ ]] ; それでは PRINTUSEDIR memcache-3.0.6/ その他 tar -zxvf memcache-3.0.6.tgz cd memcache-3.0.6/ フィ ${cInstallPhpPath}bin/phpize ./configure --with-php-config=${cInstallPhpPath}bin/php-config 寝る 1 make -s -j4 && make install && cd ../ if [[ -d PDO_MYSQL-1.0.2/ ]] ; それでは PRINTUSEDIR PDO_MYSQL-1.0.2/ その他 tar -zxvf PDO_MYSQL-1.0.2.tgz cd PDO_MYSQL-1.0.2/ フィ ${cInstallPhpPath}bin/phpize ./configure --with-php-config=${cInstallPhpPath}bin/php-config --with-pdo-mysql=${cInstallMysqlPath} make -s -j4 && make install && cd ../ エコー [PDO_MYSQL] >> ${cInstallPhpPath}etc/php.ini echo "extension=pdo_mysql.so" >> ${cInstallPhpPath}etc/php.ini if [[ $? -ね0 ]] ; それでは echo -e "e[0;31;1mphp の拡​​張機能のインストールに失敗しました。e[0m" 出口 1 フィ 寝る 5 #PHP-FPM /usr/sbin/groupadd ${cWebUser} && /usr/sbin/useradd -g ${cWebUser} ${cWebUser} mkdir -p /var/log/nginx && chmod +w /var/log/nginx &&chown -R ${cWebUser}:${cWebUser} /var/log/nginx mkdir -p /data/${cWebUser} && chmod +w /data/${cWebUser} && chown -R ${cWebUser}:${cWebUser} /data/${cWebUser } cp -n ${cInstallPhpPath}etc/php-fpm.conf.default ${cInstallPhpPath}etc/php-fpm.conf if [[ -f ${cPhpFpmConfFile} ]] ; それでは cp -n ${cPhpFpmConfFile} ${cInstallPhpPath}etc/php-fpm.conf その他 sed "s/;pid = /pid = /g" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/;error_log = /error_log = /g" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_children = .*/pm.max_children = ${pm_max_children}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.start_servers = .*/pm.start_servers = ${pm_start_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.min_spare_servers =.*/pm.min_spare_servers = ${pm_min_spare_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_spare_servers =.*/pm.max_spare_servers = ${pm_max_spare_servers}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/pm.max_requests =.*/pm.max_spare_servers = ${pm_max_requests}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/user =.*/user = ${pm_user}/" -i ${cInstallPhpPath}etc/php-fpm.conf sed "s/group =.*/group = ${pm_group}/" -i ${cInstallPhpPath}etc/php-fpm.conf フィ #start php-fpm を実行し、起動時に開始を設定します cp ${cInstallFile}${cPhpPackageDir}/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm chmod +x /etc/rc.d/init.d/php-fpm echo サービス php-fpm 開始 >> /etc/rc.d/rc.local サービス php-fpm 開始 bExit=`エコー $?` if [[ ${bExit} != 0 ]] ; それでは echo -e "e[0;31;1mPHP の拡張機能のインストールに失敗しました! e[0m" 出口 1 その他 echo -e "e[0;34;1m頑張ってください! PHP 用拡張機能のインストールは終了です! e[0m" フィ } #ダウンロードのヒント 関数 DownloadTip() { if [[ ${cDownload} == "on" ]] ; それでは echo -e "e[0;35;1mダウンロードがオンになっています。パッケージはウェブサイトからダウンロードされます。ネットワークが機能していることを確認してください。e[0m" その他 echo -e "e[0;30;1mダウンロードはオフになっています。パッケージが存在していることを確認してください。e[0m" #if ダウンロードがオフの場合、SVN からダウンロードできるようになりました。 フィ if [[ -f ${cOtherOfflinePackageFile} ]] ; それでは tar -xzvf ${cOtherOfflinePackageFile} -C ${cInstallFile} フィ } #この関数は、最後の行の上にstringを挿入することができます #これには 2 つのパラメータがあり、1 つは string、もう 1 つは file パスです。 #string すべての行は '|' で除算する必要があります 関数 InsertStrAboveLastLine() { oldIFS=$IFS IFS=| のアイテム $1 やります iInsertLine=`awk 'END{NR を印刷}' $2` cNewItem=`echo ${item} | sed '/^$/d'` if [[ ${cNewItem} != "" ]] ; それでは #エコーこれはヌルです #else #エコー item:${cNewItem} sed -e "${iInsertLine} i ${cNewItem}" -i $2 フィ #iInsertLine=`awk 'END{print NR}' ${cTestFile}` #sed -e "${iInsertLine} i ${item}" -i ${cTestFile} 完了 IFS=$oldIFS } #@desc: iptable ルールを設定する #@param: 無効 #@return: 無効 関数 SetIptables() { Arr_OpenPortList="${1}" echo now will config iptables, open port list is: PrintArrList "${Arr_OpenPortList}" for port in ${Arr_OpenPortList} do iptables -I INPUT -i eth0 -p tcp --dport ${port} -j ACCEPT iptables -I OUTPUT -o eth0 -p tcp --sport ${port} -j ACCEPT done /etc/init.d/iptables save service iptables restart } #@desc: print array list #@param: array #@return void function PrintArrList() { Arr_List="${1}" for item in ${Arr_List} do echo -e "\e[0;33;1m${item}\e[0m" done } #@desc:print use dir str #@param: string dirname #@return: void function PRINTUSEDIR() { cDirName=$1 echo ${cDirName} is found, use it and make uninstall. cd ${cDirName} && make uninstall } #@desc print red error and exit #@param string $cErrorStr #@return void function PRINTERR() { cErrorStr=${1} echo -e "\e[0;31;1mERROR:${cErrorStr}\e[0m" exit 1 } #@desc print yellow warning and not exit #@param string $cWarningStr #@return void function PRINTWARNING() { cWarningStr=${1} echo -e "\e[0;33;1mWARNING:${cWarningStr}\e[0m" } #create install file if [[ $cCommand != -base ]] ; then `mkdir -p ${cInstallFile}` bInstallFile=`echo $?` if [[ $bInstallFile != 0 ]] ; then echo -e "\e[0;31;1mmake ${cInstallFile} file is failed! \e[0m" exit else cd ${cInstallFile} fi fi ###################main################## if [[ $cCommand == "-base" ]] ; then DownloadTip # if [[ ${cDownload} == "off" ]] ; then # echo Download is off,please modify it. # exit # else InstallBasePackage #fi elif [[ $cCommand == "-m" || "--mysql" == ${cCommand} ]] ; then DownloadTip InstallMysql elif [[ $cCommand == "-n" || "--nginx" == ${cCommand} ]] ; then DownloadTip InstallNginx elif [[ $cCommand == "-p" || "--php" == ${cCommand} ]] ; then DownloadTip InstallPHP elif [[ $cCommand == "--test" ]] ; then InsertStrAboveLastLine "|1|2|3|4|5|" /home/test.txt else DownloadTip InstallBasePackage sleep 3 InstallMysql sleep 3 InstallPHP sleep 3 InstallNginx sleep 3 SetIptables "${Arr_OpenPortList}" exit 0 fi install_web_develop.sh

2、安装官方基本框架

使用官方提供的基础骨架进行安装,十分便利,我想有许多的朋友还不知道吧。

  cd ~/<span>work #进入到你的工作目录,这里只是一个例子
  git clone https:</span><span>//</span><span>github.com/viticm/ZendSkeletonApplication</span>
<span>  cd ZendSkeletonApplication
  php composer.phar self</span>-<span>update
  php composer.phar </span><span>install</span><span> # 正式开始安装zf2,网速慢的请耐心等待
  </span><span>mkdir</span> /data/www/zf2/ && <span>cp</span> ../ZendSkeletonApplication<span>/*</span><span> /data/www/zf2/ -r # 把当前目录拷贝到网站目录下</span>
ログイン後にコピー

php composer.phar self-update #运行截图

php composer.phar install #运行截图,如果你无法访问外网的话,该文章对你的帮助就不太大了

3、配置你的nginx.conf

如果你用我的脚本安装,则配置文件为/usr/local/nginx/conf/nginx.conf

<span>  server {
    listen </span>80<span>;
    server_name zf2.local.com; </span><span>#</span><span>域名</span>
    root /data/www/zf2/public; <span>#</span><span>你的网站目录</span>
<span>    index index.php;
    </span><span>#</span><span>charset utf-8;</span>
    location ~* \.(js|ico|gif|jpg|png|css|jpeg|<span>swf)$ {
      access_log off;
      expires 2d;
    }

    location </span>/<span> {
      </span><span>if</span> (!-<span>f $request_filename) {
        rewrite </span>^(.+)$ /index.php?$1&<span> last;
      }
    }
  
    location </span>~<span> \.php$ {
      </span><span>#</span><span>root /var/www/html/public;</span>
      fastcgi_pass 127.0.0.1:9000; <span>#</span><span>如果你的php-fpm的监听端口不是这个,请设置</span>
<span>      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }

    </span><span>#</span><span> deny access to .htaccess files, if Apache&rsquo;s document root</span>
    <span>#</span><span> concurs with nginx&rsquo;s one</span>
    <span>#
</span>    location ~ /<span>\.ht {
      deny all;
    }
  }</span>
ログイン後にコピー

4、开始浏览你的网站

  到此zend framework 2的开发环境就彻底搭建完成了。

  将域名和你的IP绑定,或更改host添加192.168.200.132 zf2.local.com到你的配置中。

以Zend Framework222框架与php54搭建工程,放入Apache服务器的htdocs后,不可以访问工程内的页面

入口文件
下面添加
ini_set('display_error','on');error_reporting(E_ALL);看看有没什么提示?

一般来说是缺少扩展才会空白。
还有上传的时候的权限问题

 

教LINUX下的Zend Framework配置问题 - PHP框架开发

同问。请高手解答 腾讯soso
 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/869241.htmlTechArticle搭建PHP官方框架zend framework 2(LINUX),zendframework 在五花八门的语言里,PHP作为我第一个觉得欣赏的理由,就是它的简单和快捷,因为它封...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート