優れたソフトウェアと実用的なチュートリアル
最近、ファイルを保存・公開するためのネットワークディスクを構築する必要があり、検討した結果、ネクストクラウド悪くないですね。インストールも簡単で、PHPのオンラインインストールでユーザーパスワードの設定やデータベース接続も問題なく行えます。最も重要なのはWebDAVをサポートしていることで、これは素晴らしい点です。Nextcloudはクライアントとしてモバイル端末やパソコンに対応しており、AndroidとAppleの両方をサポートしています。また、他のネットワークディスクファイル管理ツールをダウンロードすることもできます。接続に成功すれば、ファイルを直接読み込んで使用できます。
クラウドディスクをサーバーにインストールし、概要を確認した後、セキュリティと設定に関する警告が大量に表示されます。これもまた大きな落とし穴です!Googleで検索してみましたが、nextcloudに関する情報はあまり見つかりませんでした。
PHPが正しくインストールされていないため、システム環境変数にアクセスできません。getenv("PATH")関数のテストでnull値が返されました。特にphp-fpmを使用している場合は、インストール手順↗のPHP設定手順を参照して、サーバーのPHP設定情報を確認してください。
php-fpm.conf ファイルの末尾にコード行を追加する必要があります。php-fpm.conf は、サーバーにインストールされた php ディレクトリの下にある etc ディレクトリにあります。これは各サーバーによって異なります。ご自身の php-fpm.conf を見つけ、vi を使って編集してください。
vi /usr/local/php/etc/php-fpm.conf
次のコードを php-fpm.conf の末尾にコピーします。
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
systemctl php-fpm をリロードする
変更を有効にするには、PHP サービスを再起動します。
ウェブサーバーは「/.well-known/caldav」を正しく解決するように設定されていません。ウェブサーバーは「/.well-known/carddav」を正しく解決するように設定されていません。
これにはnginxの設定ファイルnginx.confを変更する必要があります。
vi /usr/local/nginx/conf/nginx.conf
ファイルを開いたら、server{}内に2行のコードを追加します。
/.well-known/carddav /remote.php/dav を永続的に書き換えます。/.well-known/caldav /remote.php/dav を永続的に書き換えます。
Apache2x では、httpd.conf 構成ファイルを変更し、LoadModule rewrite_module modules/mod_rewrite.so の前の # 番号を削除します。
設定ファイル内のすべてのAllowOverride noneをAllowOverride allに変更します。
メモリキャッシュが設定されていません。ユーザーエクスペリエンスを向上させるために、メモリキャッシュを可能な限り設定してください。
キャッシュは、データ、コード、その他のオブジェクトをメモリに保存することでパフォーマンスを向上させます。Nextcloudサーバーにmemcache構成をインストールして設定する必要があります。
まず、mysqlの設定を変更し、my.cnfファイルを編集して、innodb_buffer_pool_sizeの値を1G以上に設定します。これはシステムメモリのサイズによって異なりますが、通常はサーバーメモリの50%~70%に設定することをお勧めします。
innodb_io_capacity を 4000 に設定します。この項目が利用できない場合は、my.cnf ファイルにコピー&ペーストしてください。保存して MySQL サービスを再起動します。
Nextcloudは、memcachedと併用できるApcuを推奨しています。PHPのApcu拡張機能とmemcached拡張機能を有効にし、Nextcloudネットワークディスクディレクトリのconfig.phpファイルに以下のコードを追加してください。
最新の拡張ファイルは以下にあります。http://pecl.php.net/最新バージョンは5.18です
Apcu 拡張機能をインストールします。
wget http://pecl.php.net/get/apcu-5.1.18.tgz tar zxvf apcu-5.1.18.tgz cd apcu-5.1.18 phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install
拡張機能は、PHPインストールディレクトリのbin/php-configにインストールしてください。パスはインストールパスに合わせて設定してください。そうでない場合、エラーが発生します。
インストールが完了すると、apcu.so 用のディレクトリが作成されます。次のコードを php.ini ファイルにコピーし、php サービスを再起動してください。
拡張機能=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/apcu.so apc.enabled=オン apc.shm_size= 64M apc.enable_cli =オン
Memcached 拡張機能をインストールします。
Memcached 拡張機能には、合計 4 つのソフトウェアのコンパイルとインストールが必要です。
まず、Memcached が依存する libevent をインストールします。
次に、Memcached ライブラリをインストールします。
次に、PHP PECL の Memcached プラグインが依存する libmemcached ライブラリをインストールします。
最後に、PHP PECL 用の Memcached プラグインをインストールします。
順番を間違えないように!
memcached拡張機能を最初にインストールする必要があります。この拡張機能はlibeventに依存します。libeventの最新バージョンは2.1.11です。
libevent の依存関係をインストールします。
wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz tar -zxvf libevent-2.1.11-stable.tar.gz cd libevent-2.1.11-stable ./configure --prefix=/usr/local/libevent make make install
ダウンロード、解凍、コンパイル、インストールを一度に完了します。その後、次のものをインストールします。
Memcachedライブラリをインストールしてください。MemcachedライブラリとMemcached拡張機能は異なるものですので、混同しないようにご注意ください。Memcachedライブラリの最新バージョンは1.6.0です。
Memcached ライブラリをインストールします。
wget http://www.memcached.org/files/memcached-1.6.0.tar.gz tar -zxvf memcached-1.6.0.tar.gz cd memcached-1.6.0 ./configure --prefix=/usr/local/memcached make make install
libmemcached ライブラリをインストールします。
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz tar -zxvf libmemcached-1.0.18.tar.gz cd libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/memcached/bin/memcached make make install
上記の依存ライブラリをインストールしたら、次はmemcached拡張機能をインストールします。http://pecl.php.net/にアクセスして「memcached」を検索してください。最新バージョンは3.15です。
memcached 拡張機能をインストールします。
wget http://pecl.php.net/get/memcached-3.1.5.tgz tar -zxvf memcached-3.1.5.tgz cd memcached-3.1.5 phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached --disable-memcached-sasl make -j4 make install
インストールが成功すると、共有拡張機能をインストールした後の memcached.so のストレージ アドレスは次のようになります。
以下の内容をphp.iniファイルにコピー&ペーストしてください。操作方法は上記のapcu拡張機能のインストールと同じです。
拡張機能=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/memcached.so
最後に、変更した構成を有効にするために PHP サービスを再起動します。
systemctl php-fpm をリロードする
redis 拡張機能をインストールします。
wget http://pecl.php.net/get/redis-5.2.0.tgz tar -zxvf redis-5.2.0.tgz cd redis-5.2.0 phpize ./configure --with-php-config=/usr/local/php/bin/php-config
次の内容を php.ini ファイルにコピーし、php サービスを再起動して、redis 拡張機能を正常に有効にします。
拡張機能=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/redis.so
拡張機能がインストールされました。次に、Nextcloud config.php ファイルを変更します。
ウェブサイトのディレクトリにあるconfigを探し、その中にあるconfig.phpを見つけます。config.phpを編集します。
config.php 内の $CONFIG = array ( の下に次のコンテンツを追加します。これは、apcu を使用する拡張機能です。
'memcache.local' = '\\OC\\Memcache\\APCu',
PHPのOPcacheモジュールがロードされていません。パフォーマンス向上のため、有効化することをお勧めします。
では、Opcache とは何でしょうか?
Opcacheの前身はOptimizer+です。これはPHPの公式開発元であるZendによって開発された、クローズドソースでありながら無料のPHP最適化および高速化コンポーネントです。Optimizer+は、PHPコードをプリコンパイルして生成されたスクリプトファイル(Opcode)を共有メモリにキャッシュし、後で繰り返し使用できるようにします。これにより、ディスクからコードを読み込んで再コンパイルする時間を節約できます。同時に、いくつかのコード最適化モードを適用してコードの実行速度を向上し、PHPの実行を高速化します。
Opcache をインストールするにはどうすればいいですか?
PHP7にはデフォルトでOpcacheがインストールされていますが、有効になっていません。有効にしてみましょう。
PHP7設定ファイルを編集する
vim /usr/local/php/etc/php.ini
検索コマンドを入力してください:/opcache
[opcache]フィールドを見つけます
次のコードをphp.iniにコピーします。
zend_extension=opcache.so opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 opcache.optimization_level=1 opcache.force_restart_timeout=3600
Opcache が正常に有効化されました。
PHP のメモリ制限が推奨値の 512 MB よりも低くなっています。
php.iniファイルを編集し、memory_limitを512Mに変更します。
vi /usr/local/php/etc/php.ini メモリ制限 = 512M
PHP に FreeType がサポートされていないため、プロフィール画像と設定インターフェースが壊れます。
GDライブラリをインストールするとFreeTypeがサポートされると考えている人が多いようですが、FreeTypeは独立したPHP拡張機能ではなく、GDライブラリに属しています。
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz tar -zxvf freetype-2.10.0.tar.gz cd freetype-2.10.0 ./configure --prefix=/usr/local/freetype make make install
php7インストールファイルのext/gdディレクトリを入力します。
./configure --with-php-config=/usr/local/php/bin/php-config --with-freetype=/usr/local/freetype を実行してインストールします。
現在、GD ライブラリはすでに freetype をサポートしています。
データベースのインデックスが一部失われました。大きなテーブルにインデックスを追加するには時間がかかるため、プログラムは自動的に修復しません。
これは、Web サイト ディレクトリでコマンドを実行することで解決できます。
CDを使用して、ウェブサイトが保存されているディレクトリに移動します。例えば、ウェブサイトがwwwroot/nextcloudの下にある場合、
cd /wwwroot/nextcloud sudo -u www php occ db:convert-filecache-bigint sudo -u www php occ db:add-missing-indices
システムがPHPコマンドの使用をサポートしていない場合は、エラーメッセージが表示されます: PHP: コマンドが見つかりません
まず、echo $PATH を使用してシステム変数を確認します。usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin が存在しない場合は、コマンドを使用して追加します。
ln -s /usr/local/php/bin/php /usr/bin/php
この例には、推奨されるPHPモジュールがいくつか不足しています。パフォーマンスと互換性を向上させるために、これらのモジュールをインストールすることを強くお勧めします。
まず、ImageMagick ソースをインストールします。
sudo yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/ImageMagick-devel-6.7.8.9-18.el7.x86_64.rpm yum search ImageMagick-deve yum install ImageMagick-devel.x86_64
ImageMagick-devel をインストールした後、imagick をインストールしてください。ImageMagick-devel を必ずインストールしてください。インストールしないとインストールに失敗します。
pecl.php.netから最新バージョンをダウンロードしてください。最新の安定バージョンは3.4.4です。
wget http://pecl.php.net/get/imagick-3.4.4.tgz tar -zxvf imagick-3.4.4.tgz cd imagick-3.4.4 phpize ./configure --prefix=/usr/local/imagemagick --enable-shared make make install
php.iniに以下の内容を追加します。拡張機能を有効にするには、PHPサービスを再起動してください。
拡張機能=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/imagick.so
LDAP 拡張機能をインストールする必要があることをシステムが通知します。
yumを使用してopenldapとopenldap-develをインストールし、インストール後にファイルを/usr/lib/ディレクトリにコピーします。
yum で openldap をインストール yum で openldap-devel をインストール cp -frp /usr/lib64/libldap* /usr/lib/
PHPインストールファイルディレクトリを入力してください
cd php-7.4.3/ext/ldap phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install
次にphp.iniファイルに追加します
拡張子=/usr/local/php/lib/php/extensions/no-debug-non-zts-20190902/ldap.so