compact(): Undefined variable: subject への対応

f:id:harucharuru:20210508101147p:plain

compact(): Undefined variable: subject エラーが出た場合、

cakephp3.6.12でphp73にしたらUndefined variable: eTagMatchesのエラー - Qiita
のサイトを参考にしながら、

GitHub - cakephp/cakephp at 2.x
上記のサイトのlibファイルに置き換えたところ、動きました。

f:id:harucharuru:20210508101342p:plain

めでたしめでたし。

centOS7でのサーバ手順

完全なるメモです。

概要

# cat /etc/*release
CentOS Linux release 7.6.1810 (Core) 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.6.1810 (Core) 
CentOS Linux release 7.6.1810 (Core) 

httpdインストール

#  yum install httpd
# systemctl start httpd.service
# systemctl enable httpd.service
# systemctl stop firewalld
  Failed to stop firewalld.service: Unit firewalld.service not loaded.
# systemctl stop iptables

phpインストール

# yum install php php-mbstring php-mysql
とすると、php5系が入ってしまうので、以下の手順

# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
<span style="color: #dd830c"># yum info --enablerepo=remi,remi-php73 php
# yum info --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql</span>
# yum -y install --enablerepo=remi,remi-php73 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
# systemctl restart httpd.service

この色の部分は、パッケージの詳細を確認しています(インストールはしてない)

php確認

# cd /var/www/html/
# vi test.php

test.phpには以下の文を書き込み


IPアドレス/test.phpにアクセス
f:id:harucharuru:20210412140110p:plain

phpMyAdminインストール

# yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# yum install mysql-server
# systemctl start mysqld.service
# systemctl enable mysqld.service
# yum install epel-release
<span style="color: #dd830c"># yum info --enablerepo=remi,remi-php73 phpMyAdmin </span>
# yum -y install  --enablerepo=remi,remi-php73 phpMyAdmin 
# systemctl restart httpd.service

あとは、
Cloud Computing System.lab: CentOS7 phpMyAdminのインストール
を参考にしつつ、phpMyAdmin.confの変更は、
phpMyAdminの設定(CentOS 7) | さくらインターネットのVPS設定マニュアル
を参考にしました。

cakephp2系をPHP7で動かそうとしたら出てきたエラー解消方法

cakephp2系をPHP7で動かそうとしたら出てきたエラー解消方法


Warning: _cake_core_ cache was unable to write 'cake_dev_en-us' to File cache in /home/ナイショ!/www/lib/Cake/Cache/Cache.php on line 327
Warning: /home/ナイショ!/www/app/tmp/cache/persistent/ is not writable in /home/ナイショ!/www/lib/Cake/Cache/Engine/FileEngine.php on line 385
Fatal error: Uncaught CacheException: Cache engine "_cake_core_" is not properly configured. Ensure required extensions are installed, and credentials/permissions are correct in /home/ナイショ!/www/lib/Cake/Cache/Cache.php:186 Stack trace: #0 /home/ナイショ!/www/lib/Cake/Cache/Cache.php(151): Cache::_buildEngine('_cake_core_') #1
/home/ナイショ!/www/app/Config/core.php(376): Cache::config('_cake_core_', Array) #2 /home/ナイショ!/www/lib/Cake/Core/Configure.php(72): include('/home/ナイショ!/w...') #3
/home/ナイショ!/www/lib/Cake/bootstrap.php(431): Configure::bootstrap(true) #4 /home/ナイショ!/www/app/webroot/index.php(95): include('/home/ナイショ!/w...') #5 {main} thrown in /home/ナイショ!/www/lib/Cake/Cache/Cache.php on line 186

$ chmod -R 777 tmp/
参考 :[CakePHP] Warning: _cake_core_ cache was unable to write エラーの対処方法 | Search Light(CakePHP PHP jQuery JavaScript CSS Linux MySQLMac)



Fatal error: Uncaught Error: Class 'Controller' not found in /home/ナイショ!/www/lib/Cake/Error/ExceptionRenderer.php:177 Stack trace: #0 /home/ナイショ!/www/lib/Cake/Error/ExceptionRenderer.php(95): ExceptionRenderer->_getController(Object(FatalErrorException)) #1 /home/ナイショ!/www/lib/Cake/Error/ErrorHandler.php(126): ExceptionRenderer->__construct(Object(FatalErrorException)) #2 /home/ナイショ!/www/lib/Cake/Error/ErrorHandler.php(284): ErrorHandler::handleException(Object(FatalErrorException)) #3 /home/ナイショ!/www/lib/Cake/Error/ErrorHandler.php(213): ErrorHandler::handleFatalError(64, 'Cannot use 'Obj...', '/home/ナイショ!/w...', 30) #4 /home/ナイショ!/www/lib/Cake/Core/App.php(970): ErrorHandler::handleError(64, 'Cannot use 'Obj...', '/home/ナイショ!/w...', 30, Array) #5 /home/ナイショ!/www/lib/Cake/Core/App.php(943): App::_checkFatalError() #6 [internal function]: App::shutdown() #7 {main} thrown in /home/ナイショ!/www/lib/Cake/Error/ExceptionRenderer.php on line 177
下のサイトから、lib以下をダウンロードして上書き
GitHub - cakephp/cakephp at 2.x
参考:PHP7でCakePHP2.xを動かす | idealive tech blog



f:id:harucharuru:20210322182935p:plain
そうだ!前のサイトは、SSL化してたんだった!
ということでSSL化します。


できた!!!!!

cakePHP複数ユーザでのログイン設定

vi Config/core.php

163ページ目のRouting.prefixesのコメントアウトを外して、ログインしたいユーザ形式を書き込む。
今回の場合は、admin,userの2つ
f:id:harucharuru:20210209135821p:plain

で、bakeするときのcontrollerでadminのprefixをつけるか聞いてくるので
yesにしておくと便利(まあ、時と場合によりだと思いますが)


その他、サイト作成でとても参考になったリンク
HTTPSとHTTPの混合サイトで外部リンクが読み込めない場合の対処 | WEBデザインの小技集

cakephp2系がうまくインストールできなかったので

今までの方法で、インストールして設定しようとしたらうまくいかず
harucharuru.hatenablog.com

出たエラー
f:id:harucharuru:20210209134503p:plain
f:id:harucharuru:20210209134539p:plain
$ Console/cake bake
PHP Fatal error: Cannot use 'Object' as class name as it is reserved in /home/mznpub/www/tmedeye/lib/Cake/Core/Object.php on line 30

Fatal error: Cannot use 'Object' as class name as it is reserved in /home/mznpub/www/tmedeye/lib/Cake/Core/Object.php on line 30
Fatal Error Error: Cannot use 'Object' as class name as it is reserved in [/home/mznpub/www/tmedeye/lib/Cake/Core/Object.php, line 30]


ということで、別の方法です。

git clone https://github.com/cakephp/cakephp.git -b 2.x
cd ダウンロードしたフォルダ
chmod -R 777 lib/Cake/Cache/
chmod -R 777 app/tmp/

f:id:harucharuru:20210209134718p:plain

セキュリティソルト変更

vi Config/core.php

f:id:harucharuru:20210209134917p:plain

Macでmecabを使うまで

% brew install mecab
f:id:harucharuru:20210207095324p:plain

% brew install mecab-ipadic
f:id:harucharuru:20210207095341p:plain


ターミナルで使用できることを確認
% mecab
f:id:harucharuru:20210207095419p:plain

condaで利用できるようにするため
% conda install -c anaconda swig
f:id:harucharuru:20210207095506p:plain

% pip install mecab-python3
f:id:harucharuru:20210207095530p:plain

pythonで利用できることを確認
f:id:harucharuru:20210207095642p:plain

condaの環境で、以下のコマンドを利用してmecabを入れる
f:id:harucharuru:20210207095747p:plain

参考
Python3からMeCabを使う - Qiita
anacondaのjupyter notebookからmecabを使うまでの手順 - Qiita