2016年12月11日日曜日

cakephpにおけるgmailアカウントによる送信設定

cakephpのマニュアル通りで、gmailのアカウントを設定しても、送信したら、エラーになって、gmailから「ブロックされたログインについてご確認ください」のメールが来た。メールの指示通り、「安全性の低いアプリ」のアクセスを許可しても、「SMTP server did not accept the password」のエラーになった。

そこで下記リンクにアクセスして、アカウントへのアクセスが有効にすれば、メールが送信できるようになった。
https://accounts.google.com/b/0/DisplayUnlockCaptcha

参考:http://stackoverflow.com/questions/26399202/sending-activation-email-smtp-server-did-not-accept-the-password

2016年12月7日水曜日

cloud9でcakephp2の設定

以前はgitHubからcloud9にcloneして、特に問題はなかったが。cakephp2のインストールファイルをそのままcloud9にコピーしたら、アクセスしようさい、「File does not exist」エラーになった。どうもweb rootの設定の問題のようです。

そこで、cloud9のapacheの設定を変更したところ、無事アクセスできるようになった。

sudo vi /etc/apache2/sites-enabled/001-cloud9.conf

DocumentRoot /home/ubuntu/workspace/app/webroot/ #この行を変更

sudo service apache2 restart

参考ページ
http://qiita.com/entaku19890818/items/918bdeeac6a99b03c93b
http://qiita.com/daiki7nohe/items/6e65d405f6dad1888d74

2016年11月20日日曜日

cloud9でcakephp3の動作確認

1)環境を整える、シェルで
phpmyadmin-ctl install

2)cakephp3をインストール、シェルで
curl -s https://getcomposer.org/installer | php
php composer.phar create-project --prefer-dist cakephp/app bookmarker

3)phpmyadminでDBとテーブルを作成

4)config/app.phpのDatasourcesのところで書き換える

5)自分のスペースにアクセスすると、cakephp3の環境設定完了の画面が出てくる
https://{app_address}/bookmarker/

6)シェルでbakeする
cd bookmarker
bin/cake bake all users
bin/cake bake all bookmarks
bin/cake bake all tags


2016年10月28日金曜日

awsにおけるcakephpの設定

git cloneであるcakephp2のプロジェクトをawsのweb rootに追加したが、top以外のところにアクセスできない。以下のメッセージがでてきている。

URL rewriting is not properly configured on your server.

とりあえずcakephpのマニュアルを参照、httpd.conf(/etc/httpd/confの下)を一行修正したところ、上記メッセージが消えてないが、アクセスできるようになった


<Directory "/var/www/html">
    AllowOverride All #none->All
</Directory>

2016年10月27日木曜日

AWS Amazon Liunx上phpmyadminをインストール

1)composerをインストール
sudo curl -sS https://getcomposer.org/installer | sudo php
sudo mv composer.phar /usr/local/bin/composer
sudo ln -s /usr/local/bin/composer /usr/bin/composer

2)phpmyadminをdownload
composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev

chmod -R 0755 phpmyadmin

3)Apacheを設定
sudo vi /etc/httpd/conf.d/phpmyadmin.conf

Alias /phpmyadmin "/var/www/phpmyadmin" #phpmyadminの場所
<Directory "/var/www/phpmyadmin" >
Order allow,deny
Allow from all #すべてのipからアクセスできる
</Directory>

4)apacheを再起動
sudo service httpd restart
sudo service mysqld restart

5)http://{ipaddress}/phpmyadmin/にアクセスしてもな
sudo less /etc/httpd/logs/error_log でエラーを調べたところ、

PHP Fatal error:  Uncaught Error: Call to undefined function mb_detect_encoding() in /var/www/phpmyadmin/libraries/php-gettext/gettext.inc ......

以下のパッケージをインスタール
sudo yum install php70-mbstring

6)再度httpdを再起動した、OK
sudo service httpd restart

Amazon Linux への LAMPインストール

1)すべてのソフトウェアパッケージが最新の状態に
sudo yum update -y

2)インストール
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd

3)Apache ウェブサーバーを起動
sudo service httpd start

4)システムがブートするたびに Apache ウェブサーバーが起動するように設定
sudo chkconfig httpd on

確認するには、
chkconfig --list httpd

5)awsのインスタンスにHTTPルールをセキュリティグループに追加


6)インスタンスのパブリック DNS アドレス(またはパブリック IP アドレス)を入力すると、Apache テストページが表示される

7) Apache ドキュメントルート/var/www/htmlをwww グループに所有権を与える
sudo groupadd www
sudo usermod -a -G www {username}

再ログインし、グループを確認
groups

/var/ とそのコンテンツのグループ所有権を www グループに変更
sudo chown -R root:www /var/www


8)よく分からないが、公式マニュアル通り、以下を実行した
「/var/www およびそのサブディレクトリのディレクトリ許可を変更してグループの書き込み許可を設定し、将来のサブディレクトリにグループ ID を設定します。」
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} \;

「/var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み許可を追加します。」
find /var/www -type f -exec sudo chmod 0664 {} \;

9)mysqlサーバーを起動、mysql rootのパスワードを設定
sudo service mysqld start
sudo mysql_secure_installation

10)ブート時にMySQL サーバーを起動させる
sudo chkconfig mysqld on

【参考ページ】
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html

AWS上仮想マシーンの作成と初期設定

1)仮想マシーンを作成
AWSの無料アカウントを取得したあと、EC2仮想マシーンを作成し、sshでログインためのpublic keyを生成します。
SUSE Linuxのインスタンスを作成し、うまくログインできなかったため、Amazon Linuxのインスタンスを作成した。

2)sshでログイン
Amazon Linuxのdefault userは「ec2-user」で、作成したpublic keyでログインできた。

3)rootパスワードの設定
sudo passwdで設定できた。

4)password方式でsshログイン
key方式は面倒のため、passwordでもsshログインできるように、rootになってから

vi /etc/ssh/sshd_config

「PasswordAuthentication yes」にして、sshdを再起動

/etc/init.d/sshd restart

5)新しいユーザーを追加、パスワードを設定
useradd {username}
passwd {username}

6)新しいユーザーがsudoを使えるように設定
visudo

2016年10月24日月曜日

cakephp2におけるHABTM関係要素の検索


ProjectとSkill, AreaはHABTMの関係となっています。Skill, AreaでProjectを検索するには、条件には「joins」を定義してあげないと、SQLがエラーになります。hasOne/hasMany/belongsToなら、不要ですが。

if ($this->request->is('post')) {
            $areas = $this->request['data']['area'];
            $skills = $this->request['data']['Project']['Skill'];
            $industries = $this->request['data']['Project']['Industry'];//IndustryはhasMany Project

            $opt_area = array('OR' => array('Area.id' => $areas));//OR条件検索
            $opt_skill = array('OR' => array('Skill.id' => $skills));
            $opt_industry = array('OR' => array('Industry.id' => $industries));

            $opt = array($opt_area, $opt_skill, $opt_industry);//default AND条件検索

$this->Paginator->settings = array(
                'conditions' => $opt,
                'recursive' => 1,
                'group' => array('Project.id'),
                'joins' => array(
                    array('table' => 'areas_projects',
                        'alias' => 'AreasProject',
                        'type' => 'inner',
                        'conditions' => array(
                            'Project.id = AreasProject.project_id',
                        )
                    ),
                    array(
                        'table' => 'areas',
                        'alias' => 'Area',
                        'type' => 'inner',
                        'conditions' => array(
                            'AreasProject.area_id = Area.id',
                        ),
                    ),
                     array('table' => 'skills_projects',
                         'alias' => 'SkillsProject',
                         'type' => 'inner',
                         'conditions' => array(
                             'Project.id = SkillsProject.project_id',
                         )
                     ),
                    array(
                        'table' => 'skills',
                        'alias' => 'Skill',
                        'type' => 'inner',
                        'conditions' => array(
                            'SkillsProject.skill_id = Skill.id',
                        ),
                    ),

$projects = $this->Paginator->paginate('Project');

2016年10月14日金曜日

cloud9でmysql/phpmyadminの使用

シェルで
mysql-ctl start
phpmyadmin-ctl install

https://{app_address}/phpmyadmin  にアクセス

2016年9月10日土曜日

macのphpを7に更新


curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0
sudo apachectl restart
あるいは
brew search php@7
そして、install versionを選択する
brew install php@7.2
参考ページ:https://coolestguidesontheplanet.com/upgrade-php-on-osx/
https://qiita.com/yamatmoo/items/4ff2fe1785f771e67e08

2016年6月11日土曜日

concrete5をインストール

1)パッケージファイルをDL
2)Document RootにDLしたファイルを移す(フォルダー名はcon5と仮定)
3)web server processが書き込めるように、chmod -R 777 con5/packages/(con5/application/files/とcon5/application/config/も同じ)
3)web server(apache)を起動
4)mysqlを設定:
mysql -u root -p
CREATE DATABASE con5;
grant all on con5.* to user4con5@localhost identified by 'con5pw';
上記1行は下記3行と同じ
create user user4con5@'localhost';
SET PASSWORD FOR user4con5@'localhost' = PASSWORD('con5pw');
GRANT ALL ON con5.* TO user4con5@'localhost' ;

5)ブラウザーから「localhost/con5」にアクセス、指示通り実行


参考:http://documentation.concrete5.org/developers/installation/installation

Cloud9上concrete5をインストール方法は、以下を参考
https://concrete5.co.jp/blog/cloud9-concrete5

2016年6月9日木曜日

apacheをmac上起動

sudo apachectl start

apacheの設定file /private/etc/apache2/httpd.conf
web内容のフォルダー /Library/WebServer/Documents、上記設定ファイルを変更することによって、web rootを変更できる

停止  sudo apachectl stop
再起動 sudo apachectl restart

2016年6月8日水曜日

mysqlをMacにインストール

1)dmgファイルをインストール
2)システム環境設定に「MySQL」が出来上がる、そこからmysqlを起動できる
3)初期passwordを変更
mysqladmin password NEWPW -u root -p
初期passwordを入力したら、NEWPWに変更される