Nextcloud with nginx

NextCloudを使うのが,Arch再使用の理由なので,さっそくセットアップ。
Sqliteは,テスト,軽量,シングルユーザーとのことなので,今回はMariaDBを選択。
対象のサーバーのメモリが限られているので,ウエブサーバーはNginxを選択。
sudo -iでrootに移行し,pacman -S phpでphpのインストール
nextcloud 12で必要なphpのモジュールは,
ctype, dom, gd, iconv, json, libxml, mbstring, posix, SimpleXML, XMLReader, XMLWriter, zip,zlib
pdo_mysql, curl, fileinfo, bz2, intl, mcrypt, openssl, opcacheなど。
mysqliは不要。
php -mで確認後,/etc/php/php.iniのextensionsをコメントアウト。
pacman -Ss php-でインストールが必要なモジュールを確認して,
pacman -S php-gd php-intl php-mcryptをインスト。
pacman -S mariadbでmysqlをインストール
指示通り,mysql_install_db –user=mysql –basedir=/usr –datadir=/vat/lib/mysql
systemctl start mariadb
mysql_secure_installationでrootのパスワードなどを設定。
mysql -u root -p
CREATE database `nextcloud` default character set `utf8` collate `utf8_unicode_ci`;
CREATE USER `nextcloud`@’localhost’ IDENTIFIED BY ‘passwd’;
GRANT ALL PRIVILEGES ON `nextcloud`.* TO `nextcloud`@`localhost`;
quit
pacman -S php-fpmをインスト
/etc/php/php-fpm.d/www.conf の env[PATH] = /usr/local/bin:/usr/bin:/bin をコメントアウト
/et/php/php.iniを編集し,open_basedir=を設定。後述。
systemctl start php-fpm
pacman -S nginxでインストール
mkdir /etc/nginx/conf.d/
vi /etc/nginx.confで,httpセクションの最後に以下を追加
server_names_hash_bucket_size 64;
include conf.d/*.conf;
/etc/nginx/conf.dにarch wikiのcloud-initial.confをコピーする。
Nextcloudの本家のconfだと,ドキュメントディレクトリが違うので,arch wikiのものを使用する。
https用のnextcloud.confは後で使用する。
nignx -tで設定を確認
ディレクトリの設定のスクリプトがないので,Arch Wikiのset-nc-permsを流用。
browserで確認すると
以上で,ドメインにアクセスするとnextcloudが動くはず。
Cannot write into config directory!のエラー。
原因は、/etc/php/php.iniのbasedirなので、
open_basedir = /usr/share/webapps/nextcloud/:/etc/webapps/nextcloud/:/usr/share/nginx/html/:/dev/urandom:/tmp/:/var/tmp/に変更して、systemctl restart php-fpm。
/tmpの追加が必要だと分かるまで、かなり悩んだ。uploadディレクトリを分けたので,/var/tmpも追加。
systemctl enabel nignx
systemctl enabel php-fpm
systemctl enabel mariadb
起動時の設定もしておく。

コメント