Solaris 11.3上のApache PHP MySQLバンドル

最初にSolarisに出会ったときの唯一の欠点は、インストールできるパッケージがかなり古いという事実でしたが、幸いなことに現在のバージョンはソースコードからコンパイルできます。 この出版物では、ソースコードからのapacheとphpのアセンブリについて説明します(mysqlはmysql.comから既製のパッケージとしてダウンロードできます)。 この記事の執筆時点では、Apacheの現在のバージョンは2.4.29、php 7.2.3でした。



組立



最初のステップは、 gcc-48パッケージをインストールすることです



pkg install gcc-48
      
      





さらにコンパイルするためにいくつかの変数を定義する必要もあります(アセンブリは64ビットバージョンで発生します)。



 export CPP="/usr/gcc/4.8/bin/gcc -E" export CC="/usr/gcc/4.8/bin/gcc" export CFLAGS="-m64 -std=gnu99 -fPIC -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" export LDFLAGS="-m64 -L/usr/lib -R/usr/lib" export CXXFLAGS="-m64"
      
      





システムの再起動後、これらの値を再度追加する必要があります(必要なパッケージの収集が完了していない場合)。



ソースコードと共に必要なアーカイブをダウンロードします(すべてのアクションはファイルシステムのルートで行われます)。



 wget http://php.net/distributions/php-7.2.3.tar.bz2 wget http://apache-mirror.rbc.ru/pub/apache//httpd/httpd-2.4.29.tar.bz2 wget http://mirror.linux-ia64.org/apache//apr/apr-1.6.3.tar.bz2 wget http://mirror.linux-ia64.org/apache//apr/apr-util-1.6.1.tar.bz2 wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39-solaris11-x86_64.pkg.gz
      
      





開梱:



 tar -xvf apr-1.6.3.tar.bz2 tar -xvf apr-util-1.6.1.tar.bz2 tar -xvf httpd-2.4.29.tar.bz2 tar -xvf php-7.2.3.tar.bz2 gzip -d mysql-5.6.39-solaris11-x86_64.pkg.gz
      
      





より便利にディレクトリとmysqlパッケージの名前を変更します。



 mv mysql-5.6.39-solaris11-x86_64.pkg mysql.pkg mv apr-1.6.3 apr mv apr-util-1.6.1 apr-util mv httpd-2.4.29 apache mv php-7.2.3 php
      
      





Apacheを正しくアセンブリするには、aprとapr-utilの2つの追加パッケージをビルドする必要もあります。もちろん、Solarisの一部であるパッケージを使用できますが、この場合はlibtoolスクリプトに大幅な変更を加える必要があります。 まず、aprをビルドし、/ aprディレクトリに移動して、構成、アセンブリ、およびインストールのコマンドを順番に実行します(アセンブリとインストールは、gnuバージョンのmakeで実行する必要があります)。 / usr / localディレクトリでのインストールに精通している場合、インストールは/ optディレクトリで実行されます。この場合、-prefixパラメータを編集し、後続のapacheとphpのアセンブリ中に正しいパスを指定する必要があります。



 cd /apr ./configure --prefix=/opt/apr gmake gmake install
      
      





次に、apr-utilをビルドし、aprがインストールされているフォルダーを指定する必要があります。



 cd /apr-util ./configure --prefix=/opt/apr-util --with-apr=/opt/apr gmake gmake install
      
      





aprインストールの最後の作業はlibtoolの小さな編集で、これは/ opt / apr / build-1ディレクトリにあります。このスクリプトでは、1行を編集する必要があります。



 export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
      
      





この行は次のように変更する必要があります(delete \ $ global_symbol_pipe):



 export_symbols_cmds="\$NM \$libobjs \$convenience | \$SED 's/.* //' | sort | uniq > \$export_symbols"
      
      





これらの操作の後、Apacheは問題なくコンパイルされます(主なことは、aprおよびapr-utilでディレクトリを指定することです)。 マルチスレッドバージョンのApacheがコンパイルされます。



 cd /apache ./configure --prefix=/opt/apache24 --with-apr=/opt/apr --with-apr-util=/opt/apr-util --with-mpm=worker gmake gmake install
      
      





phpをビルドするだけです。



 cd /php ./configure --prefix=/opt/php \ --with-config-file-path=/opt/php/lib \ --with-apxs2=/opt/apache24/bin/apxs \ --with-config-file-scan-dir=/opt/php \ --without-pgsql \ --with-zlib \ --with-zlib-dir=/usr/include \ --with-iconv-dir=/usr/include \ --with-pcre-dir=/usr/include \ --with-gettext=/usr/include \ --with-libxml-dir=/usr/include/libxml2/libxml \ --with-curl \ --with-openssl \ --with-openssl-dir=/usr/include \ --with-gd \ --with-freetype-dir=/usr/include \ --with-xpm-dir=/usr/include \ --with-jpeg-dir=/usr/include \ --with-png-dir=/usr/include \ --with-gnu-ld \ --with-mhash \ --enable-shared \ --with-mysqli=mysqlnd \ --enable-zip \ --enable-ftp \ --enable-mysqlnd \ --enable-opcache \ --disable-cli \ --disable-ipv6 gmake gmake install
      
      





非大域ゾーンでビルドしている場合、正しく実行するにはphpモジュールの依存関係をコピーする必要があります。以下の例は、コピーする必要があるファイルを示しています(使用しているゾーンへのパスを指定します)。



 cp /usr/lib/amd64/libX11.so.4 /zones/zone1/root/usr/lib/amd64/libX11.so.4 cp /usr/lib/amd64/libXpm.so.4 /zones/zone1/root/usr/lib/amd64/libXpm.so.4 cp /usr/lib/amd64/libjpeg.so.62 /zones/zone1/root/usr/lib/amd64/libjpeg.so.62 cp /usr/lib/amd64/libXext.so.0 /zones/zone1/root/usr/lib/amd64/libXext.so.0 cp /usr/lib/amd64/libxcb.so.1 /zones/zone1/root/usr/lib/amd64/libxcb.so.1 cp /usr/lib/amd64/libXau.so.6 /zones/zone1/root/usr/lib/amd64/libXau.so.6 cp /usr/lib/amd64/libXevie.so.1 /zones/zone1/root/usr/lib/amd64/libXevie.so.1 cp /usr/lib/amd64/libXss.so.1 /zones/zone1/root/usr/lib/amd64/libXss.so.1 cp /usr/lib/amd64/libXdmcp.so.6 /zones/zone1/root/usr/lib/amd64/libXdmcp.so.6
      
      





さらに何かを追加する必要がある場合、この場合、次のコマンドを使用してすべてのアセンブリパラメーターを表示できます。



 ./configure --help
      
      





最後の仕上げは、mysqlのインストールです。



 pkgadd -d /mysql.pkg
      
      





構成



mysqlとapacheを自動実行に追加し、phpを処理するようにapacheを構成し、正しく起動するようにmysqlを構成するだけです。 Apacheがphpスクリプトを正しく処理するには、次のコマンドを実行する必要があります。このコマンドは、AddHandlerアプリケーション/ x-httpd-php .php行をhttpd.confに追加します。



 echo "AddHandler application/x-httpd-php .php" >> /opt/apache24/conf/httpd.conf
      
      





また、パラメーターを変更します。



 DirectoryIndex index.html
      
      









 DirectoryIndex index.php
      
      





または上



 DirectoryIndex index.html index.php
      
      





次のステップでは、拡張機能をアクティブにして「オペコード」を最適化します(この拡張機能により、ページ生成の速度が数倍向上する可能性があります)。このため、ファイルを作成する必要があります。



 touch /opt/php/ext-10-opcache.ini
      
      





また、このファイルに行zend_extension = opcache.soを追加します。



 echo "zend_extension=opcache.so" >> /opt/php/ext-10-opcache.ini
      
      





また、必要に応じて、/ opt / phpディレクトリにphp.iniファイルを作成できます。これは、phpがこのディレクトリで構成ファイルを探すためです。



mysqlを正しく起動するには、/ etcフォルダーにmysqlディレクトリーを作成し、my.cnfファイルをこのフォルダーにコピーし、mysql(root)を実行するユーザー名を示す行を追加する必要があります。



 mkdir /etc/mysql cp /opt/mysql/mysql/my.cnf /etc/mysql/my.cnf echo "user = root" >> /etc/mysql/my.cnf
      
      





これらの操作の後、次のコマンドでmysqlを起動する必要があります。



 /etc/init.d/mysql start
      
      





mysqlをインストールした後、デフォルトのパスワードを持つファイル(.mysql_secret)がファイルシステムのルートに作成されます。このパスワードを使用してmysql_secure_installationスクリプトを実行します。



 /opt/mysql/mysql/bin/mysql_secure_installation
      
      





何らかの理由でインストーラーが/ usr / binフォルダーにmysqlのクライアントバージョンへのリンクを作成しなかった場合(「mysql-client」をどこからでも実行できます(mysql -p -r))、これを手動で行う必要があります。



 ln -s /opt/mysql/mysql/bin/mysql /usr/bin/mysql
      
      





mysqlとapacheを自動実行(レベル3)に追加するだけでなく、レベル0でサービスの自動シャットダウンを構成するだけです。これを行うには、2つのディレクトリにリンクを作成します。



 ln /etc/init.d/mysql /etc/rc0.d/Kmysql ln /opt/apache24/bin/apachectl /etc/rc0.d/Kapache
      
      





システムがシャットダウンすると、これらのリンクは自動的にサービスを停止します。 マルチユーザー環境(レベル3)で自動実行するには、次のリンクを作成します。



 ln /etc/init.d/mysql /etc/rc3.d/Smysql ln /opt/apache24/bin/apachectl /etc/rc3.d/Sapache
      
      





便宜上、/ usr / binディレクトリにapchectlへのシンボリックリンクを作成できます。



 ln -s /opt/apache24/bin/apachectl /usr/bin/apachectl
      
      





Apacheを起動します。



 apachectl start
      
      





おわりに



この出版物からわかるように、Solaris OS上のソフトウェアの最新バージョンの欠如は文ではありません。ソースコードから必要なソフトウェアをいつでもコンパイルでき、必要であれば、ソフトウェアの効率を最大化するためにいくつかの変更を加えることができるからです。



All Articles