CentOS6にIUSリポジトリのMySQL5.6をインストールする

MySQL

CentOS6にIUSリポジトリのMySQL 5.6をインストールしました。
IUSはRackspaceのRPM開発チームが運営するリポジトリです。

  • IUSリポジトリの登録

IUSリポジトリの最新設定は下記URLを参照してください。
http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/repoview/ius-release.html

IUSを利用するにはepelが必要です。
epelリポジトリを登録していない場合は先にepelリポジトリを登録します。
epel-releaseパッケージをインストールします。

 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/epel-release-6-5.noarch.rpm

ius-releaseパッケージをインストールします。

 rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-11.ius.centos6.noarch.rpm
  • MySQL 5.6のインストール

CentOSの標準インストールでcrondやpostfixの依存関係で既にmysql-libsがインストールされています。mysql56u-libsをインストールしようとすると既存のmysql-libsとコンフリクトしてしまいます。

yum-plugin-replaceをインストールします。

 yum install yum-plugin-replace

一旦CentOS標準のmysql(5.1)をインストールします。

 yum install mysql

CentOS標準のmysqlをIUSリポジトリのmysql56uで置き換えます。

 yum replace mysql --replace-with mysql56u

libmysqlclient.so.16等の依存関係が解決できないという警告が表示されますが、yを入力して続行するとmysqlclient16をインストールして、libmysqlclient.so.16に依存するパッケージの依存関係を自動で解決します。

出力は下記のようになりました。

 WARNING: Unable to resolve all providers: ['libmysqlclient.so.16()(64bit)', 'libmysqlclient.so.1
 6(libmysqlclient_16)(64bit)', 'libmysqlclient_r.so.16()(64bit)', 'libmysqlclient_r.so.16(libmysq
 lclient_16)(64bit)', 'mysql-libs(x86-64)']
 
 This may be normal depending on the package.  Continue? [y/N] y
 Resolving Dependencies
 --> Running transaction check
 ---> Package mysql.x86_64 0:5.1.73-3.el6_5 will be erased
 ---> Package mysql-libs.x86_64 0:5.1.73-3.el6_5 will be erased
 --> Processing Dependency: libmysqlclient.so.16()(64bit) for package: 2:postfix-2.6.6-6.el6_5.x8
 6_64
 --> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: 2:postfix
 -2.6.6-6.el6_5.x86_64
 ---> Package mysql56u.x86_64 0:5.6.19-1.centos6 will be installed
 --> Processing Dependency: mysql56u-common(x86-64) = 5.6.19-1.centos6 for package: mysql56u-5.6.
 19-1.centos6.x86_64
 --> Processing Dependency: mysqlclient16 for package: mysql56u-5.6.19-1.centos6.x86_64
 ---> Package mysql56u-libs.x86_64 0:5.6.19-1.centos6 will be installed
 --> Running transaction check
 ---> Package mysql56u-common.x86_64 0:5.6.19-1.centos6 will be installed
 ---> Package mysqlclient16.x86_64 0:5.1.61-4.ius.centos6 will be installed
 ---> Package postfix.x86_64 2:2.6.6-6.el6_5 will be erased
 --> Processing Dependency: /usr/sbin/sendmail for package: cronie-1.4.4-12.el6.x86_64
 --> Running transaction check
 ---> Package cronie.x86_64 0:1.4.4-12.el6 will be erased
 --> Processing Dependency: cronie = 1.4.4-12.el6 for package: cronie-anacron-1.4.4-12.el6.x86_64
 --> Running transaction check
 ---> Package cronie-anacron.x86_64 0:1.4.4-12.el6 will be erased
 --> Processing Dependency: /etc/cron.d for package: crontabs-1.10-33.el6.noarch
 --> Processing Dependency: /etc/cron.d for package: sysstat-9.0.4-22.el6.x86_64
 --> Restarting Dependency Resolution with new changes.
 --> Running transaction check
 ---> Package crontabs.noarch 0:1.10-33.el6 will be erased
 ---> Package sysstat.x86_64 0:9.0.4-22.el6 will be erased
 --> Finished Dependency Resolution
 --> Running transaction check
 ---> Package cronie.x86_64 0:1.4.4-12.el6 will be erased
 ---> Package cronie-anacron.x86_64 0:1.4.4-12.el6 will be erased
 ---> Package crontabs.noarch 0:1.10-33.el6 will be erased
 ---> Package postfix.x86_64 2:2.6.6-6.el6_5 will be erased
 ---> Package sysstat.x86_64 0:9.0.4-22.el6 will be erased
 --> Finished Dependency Resolution
 
 Dependencies Resolved
 
 ================================================================================================
  Package                  Arch            Version                       Repository         Size
 ================================================================================================
 Installing:
  mysql56u                 x86_64          5.6.19-1.centos6              ius               6.9 M
  mysql56u-libs            x86_64          5.6.19-1.centos6              ius               679 k
 Removing:
  mysql                    x86_64          5.1.73-3.el6_5                @updates          2.4 M
  mysql-libs               x86_64          5.1.73-3.el6_5                @updates          4.0 M
 Installing for dependencies:
  mysql56u-common          x86_64          5.6.19-1.centos6              ius               214 k
  mysqlclient16            x86_64          5.1.61-4.ius.centos6          ius               1.4 M
 
 Transaction Summary
 ================================================================================================
 Install       4 Package(s)
 Remove        2 Package(s)
 
 Total download size: 9.2 M
 Is this ok [y/N]: y
 Downloading Packages:
 (1/4): mysql56u-5.6.19-1.centos6.x86_64.rpm                                                                                                       | 6.9 MB     00:30     
 (2/4): mysql56u-common-5.6.19-1.centos6.x86_64.rpm                                                                                                | 214 kB     00:00     
 (3/4): mysql56u-libs-5.6.19-1.centos6.x86_64.rpm                                                                                                  | 679 kB     00:02     
 (4/4): mysqlclient16-5.1.61-4.ius.centos6.x86_64.rpm                                                                                              | 1.4 MB     00:06     
 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Total                                                                                                                                    226 kB/s | 9.2 MB     00:41      
 Running rpm_check_debug
 Running Transaction Test
 Transaction Test Succeeded
 Running Transaction
   Installing : mysql56u-common-5.6.19-1.centos6.x86_64                                                                                                               1/6  
   Installing : mysqlclient16-5.1.61-4.ius.centos6.x86_64                                                                                                             2/6  
   Installing : mysql56u-5.6.19-1.centos6.x86_64                                                                                                                      3/6  
   Installing : mysql56u-libs-5.6.19-1.centos6.x86_64                                                                                                                 4/6 
   Erasing    : mysql-5.1.73-3.el6_5.x86_64                                                                                                                           5/6 
   Erasing    : mysql-libs-5.1.73-3.el6_5.x86_64                                                                                                                      6/6  
   Verifying  : mysql56u-libs-5.6.19-1.centos6.x86_64                                                                                                                 1/6 
   Verifying  : mysql56u-common-5.6.19-1.centos6.x86_64                                                                                                               2/6 
   Verifying  : mysql56u-5.6.19-1.centos6.x86_64                                                                                                                      3/6 
   Verifying  : mysqlclient16-5.1.61-4.ius.centos6.x86_64                                                                                                             4/6 
   Verifying  : mysql-libs-5.1.73-3.el6_5.x86_64                                                                                                                      5/6 
   Verifying  : mysql-5.1.73-3.el6_5.x86_64                                                                                                                           6/6 
 
 Removed:
   mysql.x86_64 0:5.1.73-3.el6_5                                                    mysql-libs.x86_64 0:5.1.73-3.el6_5                                                   
 

必要に応じてサーバーをインストールします。

 yum install mysql56u-server

詳細については下記を参照してください。
https://iuscommunity.org/pages/IUSClientUsageGuide.html#conflict-replace-packages

CentOS6にpython 2.7.8をaltinstallする

Linuxサーバー

pythonを普通にインストールして標準のpythonを上書きするとyum等の管理スクリプトがおかしくなってしまうことがあるのでaltinstallします。

コンパイルに必要なパッケージをインストールします

 yum groupinstall "Development tools"
 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

自分でビルドしたライブラリをロードするようにld.so.confに追記します。

 vim /etc/ld.so.conf

下記行を追加します

 /usr/local/lib

python 2.7.8のソースコードをダウンロードしてビルド・インストールします。

 wget http://python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
 tar xf Python-2.7.8.tar.xz
 cd Python-2.7.8
 ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
 make
 make altinstall

参考
https://www.digitalocean.com/community/tutorials/how-to-set-up-python-2-7-6-and-3-3-3-on-centos-6-4

CentOS7 Apacheを起動させているのにサイトが見られない

Apache
Linuxサーバー
CentOS7

めちゃ初心者な話ですけどね…。

サーバーを再起動させた後、

 # systemctl start httpd

ってやって、Apache再起度した~ って思って、サイトにアクセスしても、
「応答が帰ってきません」
になります。

 # systemctl status httpd.service

ってやっても、下記のように、動いているっぽい… はて…

 httpd.service - The Apache HTTP Server 
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabl                                                                                   ed)
   Active: active (running) since Fri 2017-08-25 17:49:22 JST; 18s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 2037 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           |-2037 /usr/sbin/httpd -DFOREGROUND
           |-2038 /usr/sbin/httpd -DFOREGROUND
           |-2039 /usr/sbin/httpd -DFOREGROUND
           |-2040 /usr/sbin/httpd -DFOREGROUND
           |-2041 /usr/sbin/httpd -DFOREGROUND
           `-2042 /usr/sbin/httpd -DFOREGROUND

原因は、Firewallが動作していることでした。

 # systemctl stop firewalld

ってやったら、サイトが見られるようになりました~⊂(^-^)⊃

CakePHP ファイルのアップロードフォームを作る

PHP

CakePHP 画像や各種ファイルのアップロードフォームを作る

ファイルをアップロードするフォームの作り方が、本家のサイトでリンクが違うようになっているので?ちょっと書いておきます。

ここではバリデーションなど余分なことはつけず、フォームの作り方だけ紹介しますね。
フォームヘルパーを使えば、簡単にできます。

例:画像のアップロードフォーム

 データベースのテーブル名 wimages
 フィールド img_name に画像ファイル名が保存されるようにします。
 
 <モデル>
 app/models/wimage.php を下記のように作ります。
 class Wimage extends AppModel
 {
    var $name = 'Wimage';  
 }
 <コントローラー>
 app/controllers/wimages_controller.php を下記のように作ります
 class WimagesController extends AppController {
    var $name = 'Wimages';
    function upload()
  {	

if (!empty($this->data)) {

     //アップロードするファイルの場所

 $uploaddir = ‘C:\Program Files\xampp\htdocs\cake\img\\’;
 $uploadfile = $uploaddir . basename($this->data[‘Wimage’][‘img_name’][‘name’]);

      //画像をテンポラリーの場所から、上記で設定したアップロードファイルの置き場所へ移動

 if (move_uploaded_file($this->data[‘Wimage’][‘img_name’][‘tmp_name’], $uploadfile)){

      //成功したら、Successを表示

   print “Success”;
  }else{

      //失敗したら、errorを表示

   print “error”;
  }

     }
   } 
 }
 <ビュー>
 views/wimages/upload.ctp を下記のように作ります。
 <h1>ファイル追加</h1>
 <?php
 //フォームをこの形で作る必要があります。
 echo $form->create('Wimage', array('enctype' => 'multipart/form-data',

‘action’ => ‘upload’) );

 echo $form->input('Wimage.img_name', array('type'=>'file' ));
 echo $form->end('Save Wimage');
 ?>

参考
CakePHPフォームの作成
http://book.cakephp.org/ja/view/183/Creating-Forms
CakePHP File Fields
http://book.cakephp.org/view/303/File-Fields

  • これはcaakephp3の話なのでしょうか?verを書いていただけるとありがたいです — あd {2016-10-04 (火) 17:06:45}
  • すみません、2系の話です。。。確かに、バージョンを書いておけばよかったですね。 — 中の人 {2016-10-04 (火) 18:43:40}

CakePHP フォームの送信先にパラメーターを渡す

PHP

Cake PHP フォームの送信先にパラメーターを設定する

CakePHP 1.2.3.8166

 //例:view ファイルに記述
 //アクション addに4というパラメーターを送りたい場合
 echo $form->create(
      null, array('url' => 
          array('controller' => 'projects', 
             'action' => 'add',
             4
             )
            )
          );