Enabled Opcache.

   On Dec. 24th, I enabled Opcache on my server (Windows7HP + SP1 (x86)).

   Since installing “BulletProof Security“, it gave me a few trouble. On the other hand, it also brought me some useful information about PHP. For example, I saw its System Information page and changed values in my php.ini like the below. It’s for the security reason.

Default Custom
output_buffering = 4096 output_buffering = Off
expose_php = On expose_php = Off
mysql.allow_persistent = On mysql.allow_persistent = Off

   The other day, I found the words “Opcode Cache” on the page. It reminded me of OPcache bundled with PHP5.5. Then I tried to enable it on my server.

   I changed some settings in my php.ini.

   First, I added the line “zend_extension=php_opcache.dll” to the end of Windows Extensions and changed the next six lines by following this page instructions. I can find better values for my server someday, but now, to follow the page instructions is better for me who is a very newbie of Opcache.

Default Custom
;opcache.enable=0 opcache.enable=1
;opcache.memory_consumption=64 opcache.memory_consumption=128
;opcache.interned_strings_buffer=4 opcache.interned_strings_buffer=8
;opcache.max_accelerated_files=2000 opcache.max_accelerated_files=4000
;opcache.revalidate_freq=2 opcache.revalidate_freq=60
;opcache.fast_shutdown=0 opcache.fast_shutdown=1

Details
Details
Files
Files
   I don’t use the CLI version of PHP, so I left “;opcache.enable_cli=0”.

   On Apache benchmarks of before and after. ApacheBench
   This benches show some improvements. But, with my feelings I realized more than the benches on the home network. I think Opcache brought major effects to my sites because most of them depend on PHP scripts, i.e. WordPress.

   I had heard about APC Control Panel, so I looked for a Control Panel of Opcache and found. You can control Opcache from a Web browser by Opcache Control Panel, ocp.php. It requires the php function ‘phpinfo’, so you had better make an access control for this file.

About Jetpack trouble.

   After moving to MariaDB, Jetpack suddenly gave me an error. I was not to able to connect my stats on WordPress.com from my parent site dashboard. As I could not solve this by myself, I went to Jetpack Support Forum and started the topic “Jetpack: site_inaccessible“. Three days later, I went to WordPress.com Japanese Forum and started “ルートサイトと昔のテストサイトのコンフリクト。” because I realized these two forums were complete different groups. But I was wrong. They belong to the same party. However, I did a multi-post because my writing was not enough (^_^;). Anyway, I had some suggestions from both of them.

  1. Jeremy Herve told me to use define( 'JETPACK_CLIENT__HTTPS', 'NEVER' );. But it did not work.
  2. Richard Archambault suggested me the issue might be related with SSL and told me to check my SITE_URL up. But, my SITE_URL was http://o6asan.com that meant no problem.
  3. naokomc told me at Stats Page it looked the owner had no dibs on the site when he could not connect to WordPress.com. So, I thought again it might be related with SSL that Richard told me.
  4. Then, I tried connecting after commenting define( 'FORCE_SSL_ADMIN', true ); out. That worked, wow!!

   I got that the authorization might fail with define( 'FORCE_SSL_ADMIN', true ); on some conditions.

   After the connection to WordPress.com, I rolled define( 'FORCE_SSL_ADMIN', true ); back. It is O.K. after the Authorization even if define( 'FORCE_SSL_ADMIN', true ); is uncommented.

   I have never resolved in my mind why this suddenly happened. But, the issue solved.

I can’t accept this is happening, but it is true.

   On December 20th, Reuters broke “Exclusive: Secret contract tied NSA and security industry pioneer“. On December 23rd, Mikko Hypponen wrote “An Open Letter to the Chiefs of EMC and RSA“.

   I can’t accept this is happening, but Mikko wrote such a letter shows us the article is almost true. For NSA, it might be their regular jobs. But for RSA, what a shame!! Of course, we should read not only Reuters side articles but also the opposite side ones like RSA RESPONSE TO MEDIA CLAIMS REGARDING NSA RELATIONSHIP.

   It is a sad fact that RSA’s credibility was destroyed.

Moving to MariaDB5.5.

Update information      Edit(Dec.21)    Edit2(Dec.25)    Edit3(2014.Jun.22)

MaintenanceNotice   Yesterday, I worked very hard. For what? Well, moving to MariaDB5.5 from MySQL on Windows7HP+SP1(x86). Haha.

   First, I backed up all the sever data.
   Next, I made a maintenance.html like the right, and for maintenance I added the next lines to the head of my .htaccess at the Document Root. The text in it is like the below. (refer to: mod_rewrite, <IfModule>)

     ErrorDocument 503 /maintenance.html

     RewriteEngine On
     RewriteCond %{REQUEST_URI} !=/maintenance.html
     RewriteCond %{REMOTE_ADDR} !=IP address for Admin
     RewriteRule ^.*$ – [R=503,L]

     Header set Retry-After “Wed, 18 Dec 2013 01:00:00 GMT”

   On the page, I found “This section should only be used if you need to have one configuration file that works whether or not a specific module is available. In normal operation, directives need not be placed in <IfModule> sections.”. So, I thought I did not need <IfModule> sections.

   Then, I announced the server maintenance on my sites and began moving to MariaDB5.5.

   I had a clean installation of MariaDB because I wanted to change my sql engine from MyISAM to InnoDB. When I started using MySQL, I made the tables by MyISAM. Recently, I heard about InnoDB merits several times. So I always wanted to move to InnoDB, but I also found someone was in troubles on moving to it on the Internet. Hence I have hesitated to make a move because I can NOT handle them if something wrong happens despite my poor knowledge about the sql.

   MariaDB has InnoDB as its default. So I was going to recreate all my tables on this occasion if necessary.

Step1 The uninstallation of MySQL.

  1. Deactivated all WordPress plugins on my sites.
  2. Backed all databases up separately from the sever data backup.
  3. Also exported all contents of my WordPress from the site Dashboard. Because I was going to import all contents by the WordPress Importer if possible. I gave it up as described below, though.
  4. Stop the service.
    Control Panel >> Administrative tools >> Services
    Select the MySQL service name and stop.
  5. Delete the service.
    Run a cmd.exe as an Administrator.
    > sc delete MySql
  6. Removed the folders, MySQL and MyDATA (<--- These are MySQL scripts and data on my server).

Step2 The installation of MariaDB.

  1. Downloaded mariadb-5.5.34-win32.zip from MariaDB.
  2. Running my eyes overInstalling MariaDB Windows ZIP packages, I went to the page about mysql_install_db.exe.
  3. Extracted the Zip archive. Made two folders named MariaDB and MyDB on my server ware partition named Drive_SV. Installed all things made by extract to the folder MariaDB.

    Run a cmd.exe as an Administrator.
    > cd Drive_SV:\MariaDB\bin
    > mysql_install_db.exe –datadir=Drive_SV:\MyDB –service=MyDB –password=secret

    By this, I was able to set the password for the root user and had a new my.ini in the MyDB.

  4. Control Panel >> Administrative tools >> Services
    Select the MyDB service name and start
    If its ‘Startup Type’ is not ‘Automatic’, you should change it to ‘Automatic’.

Step3 Access MariaDB via phpMyAdmin.

  1. Accessed MyDB as the root user from phpMyAdmin.
    Imported one of my backup database, phpmyadmin.
  2. Made a WordPress User and gave it all WordPress database privileges except Grant and no Global privileges. Of course set a password for it. Made a database for the WordPress. Their collation is utf8_general_ci.
    Logout.

   Import by WordPress Importer and I gave it up. The reason is the below.

   After a new WordPress installation, I imported all contents by WordPress Importer. But unfortunately, I found the fact that the plugin neglected some tags like <object>, it was inconvenient for me. I don’t know it neglects what kind tags and to examine them by myself is too much trouble. Therefore, I gave up this method.

Step4 Restored all WordPress database via phpMyAdmin.

  1. I wanted to use the InnoDB, so I replaced all ‘ENGINE=MyISAM’ by ‘ENGINE=InnoDB’ in the backup sql file.
  2. Login as the WordPress User.
    Exported the current WordPress database.
    Dropped all tables on the WordPress table because my backup sql file contained all data.
  3. Imported the backup. I had an error like this.
         #1214 – The used table type doesn’t support FULLTEXT indexes

    The backup file was originally MyISAM, so it includes FULLTEXT indexes. Actually it uses by YARPP as keys of post_title and post_content. Hummm. But on the forum the plugin author says we can use YARPP on the InnoDB though its performance slows down.

    I removed all lines about FULLTEXT indexes in the file. (I remember I heard we can use FULLTEXT with InnoDB on MySQL5.6.–Dec.25Edit)

  4. Dropped all tables again.

    Imported the customized file. I had another error.
         #1064 – You have an error in your SQL syntax;

    This error was my fault. When I removed FULLTEXT indexes I forgot to remove a “,” like this.
         KEY `post_author` (`post_author`),   <<--------This is the ',' I forgot to remove.      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=xxxx ; I removed all such ','s.

  5. Dropped all tables again.

    Imported the customized file. Complete.

Step5 Back to normal condition.

  1. Login the WordPess.
    Activated all plugins.
    Checked all script behaviors.

    Change .htaccess text to end the maintenance.

  2. Actually, I still have an error about Jetpack on my parent site. Like this.

         Your website needs to be publicly accessible to use Jetpack: site_inaccessible
         Error Details: The Jetpack server was unable to communicate with your site https://MySITE
         [IXR -32300: transport error: http_request_failed SSL certificate problem: self signed
         certificate in certificate chain]

    But I think this is not the maintenance faults. Now I am waiting for a reply on the Jetpack forum.

   Now I use MariaDB5.5. Clap, clap.

Edit(Dec.21):
   After I changed SQL Storage Engine from MyISAM to InnoDB, the plugin YARPP performance slowed down very much. It was more than my expecting. So, I decided to rollback the Engine about the table wp_posts by YARPP instruction message.

  1. Login phpMyAdmin.
  2. Select the database for WordPress.
  3. Select the table wp_posts.
  4. Select ‘Operations’ from the top navigation bar.
  5. Change Storage Engine from Innodb to MyISAM at Table options.
  6. Click Go button of Tabble options.
  7. Logout phpMyAdmin.

   But YARPP didn’t recognize this change, though the author have a specialized feature for this. I went to the YARPP support forum to find a solution. I found MyISAM Override check doesn’t work. I followed hussong‘s instructions.

  1. Deactivate the plugin.
  2. Login phpMyAdmin.
  3. Select the database for WordPress.
  4. Select the table wp_options.
  5. Select ‘SQL’ from the top navigation bar.
  6. Use SELECT * FROM `wp_options` WHERE option_name LIKE "yarpp%"
  7. Delete all I found.You can see yarpp_fulltext_disabled = 1. Change it to yarpp_fulltext_disabled = 0
  8. Logout phpMyAdmin.
  9. Activate the plugin.
  10. Setting the plugin again because all old settings gone.

Now, I can use Titles and Bodies consider options. Happy!

Edit2(Dec.25):
   I wrote “About Jetpack trouble“.

Edit3(2014.Jun.22):
   I wrote an article The solution of “SSL3_READ_BYTES:sslv3 alert handshake failure” on WordPress.

Upgrading to WordPress 3.8.

Update information      Edit(2014.Jan.30)    Edit2(May.6)    Edit3(Jun.22)

   On December 12, 2013, WordPress Version 3.8, named for Charlie Parker, was released to us, and today, Japanese WordPress develop members announced they brought the new Japanese version WordPress. If you want to know about its new features, see the Codex for Version 3.8.

   My WordPress is a multisite type and the parent site language is English. Probably for this reason, the WordPress Updates page does not show me the Japanese version update message.

   So, I downloaded wordpress-3.8-ja.zip manually and upgraded.

   This time, I had the warning below derived from the ca-bundle.crt again.

  Warning! Problem updating https://MySiteName. Your server may not be able to connect
  to sites running on it. Error message: SSL certificate problem: self signed certificate in
  certificate chain

   So, I did do Oiram’s workaround. Then the warning has gone.

Edit(2014.Jan.30):
   Since January 3rd, I cannot access to the Oiram’s site. For a few people googling by the word “ca-bundle.crt” and reaching here, I uploaded the PDF version of Oiram’s workaround. 「Error upgrading WordPress (SSL)

Edit2(May.6):
   Today, I can access to the the Oiram’s site after a very long interval.

Edit3(Jun.22):
   I wrote an article The solution of “SSL3_READ_BYTES:sslv3 alert handshake failure” on WordPress.

Updating to PHP5.5.7.

   At Dec-12 01:43:06UTC, they released PHP5.5.7.

   According to ( ChangeLog ), it fixes some bugs against PHP 5.5.6, and especially includes the fix for CVE-2013-6420.

   I downloaded a Thread Safe version php-5.5.7-Win32-VC11-x86.zip for my server (Windows7HP+SP1(x86)). It requires VC11. If you don’t have VC11 on your Windows, you must install vcredist_x__.exe before the PHP configuration.

   The php.ini-production has nothing changed.

   As the official PHP binary includes php5apache2_4.dll, I extract the zip archive and replace all PHP5.5.6 files with all PHP5.5.7 files except my php.ini. Then, I restart my Apache. That’s it.

   If you need how to configure PHP5.5, please see the post. It is for a mbstrings user, but the information gives some help for you.

phpMyAdmin 4.1.0 is released.

   phpMyAdmin 4.1.0 is released. They say “With this release the minimum supported PHP version is now 5.3 and the minimum MySQL version is 5.5”. It has a ton of information in the ChangeLog. So I updated.

   I downloaded a phpMyAdmin-4.1.0-english.zip, extracted it, copied my old config.inc.php to the phpmyadmin folder made by extracting, and uploaded all of them to the server (See “To create a Wamp-like Web Server in Windows7-#3.“).

   By the way, when I compared the new config.sample.inc.php with my old one, I found some additional lines in it. Like this:
    At /* User used to manipulate with storage */ area
     // $cfg[‘Servers’][$i][‘controlport’] = ”;

    At /* Storage database and tables */ area
     // $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
     // $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
     // $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;

    At the last area above the doc/ folder information
     /**
      * Should error reporting be enabled for JavaScript errors
      *
      * default = ‘ask’
      */
     //$cfg[‘SendErrorReports’] = ‘ask’;

   So, when I logged on the new phphmyadmin at the first time, I got “The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.”.

   By a clicking, I got the next three alerts.

     $cfg[‘Servers’][$i][‘users’] … not OK [ Documentation ]
     $cfg[‘Servers’][$i][‘usergroups’] … not OK [ Documentation ]
     Configurable menus: Disabled

     $cfg[‘Servers’][$i][‘navigationhiding’] … not OK [ Documentation ]
     Hide/show navigation items: Disabled

   I had instructions, too.

     Quick steps to setup advanced features:

     Create the needed tables with the examples/create_tables.sql.
     Create a pma user and give access to these tables.
     Enable advanced features in configuration file (config.inc.php), for example by starting from
     config.sample.inc.php.
     Re-login to phpMyAdmin to load the updated configuration file.

   To create the tables with the examples/create_tables.sql or by your hand, it is your choice. Further information about this, see “Configuration storage“. As I already had the pma user, I created the tables manually. Then, I added new additional lines above to my config.inc.php, and removed “//” from the head of the next lines.
     $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
     $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
     $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;

   I re-logined to phpMyAdmin to load the updated configuration file. Mission complete.

Installed a Vista Business on my KeyPaso.

Update information      Edit(Mar.19)    Edit2(2014.Oct.16)

   I installed a Windows Vista Business I have on my KeyPaso. KeyPaso is a brand name of Elite 4 in Japan.

   I have used it as my living room PC. I gave up it because it has a lot of freezes when we watch videos. But, it is still alive. As I wanted to use it as my private video PC, I tried customizing it again. They end to support Windows XP on 2014/Apr/8 UTC, so I changed its OS to a Windows Vista Business I have. About VIDEO & GRAPHICS, both Built-in SiS651 and RADEON 9200 SE PCI have low ability. But the RADEON has a TV-Out and the Built-in does not have it. As the display I wanted to use this time has no VGA nor DVI, this is the reason why I replaced them, i.e. I disabled the Built-in.

   Here its speculation table.
 

  Old New
Installed OS Windows XP Professional SP3 Windows Vista Business SP2
CPU Intel(R) Celeron(R) 2.40GHz (Northwood-128) Socket 478 mPGA
Mainboard SiS-650
MEMORY 2GB (1GBx2) PC2700 DDR SDRAM(166 MHz)
SYSTEM BIOS Phoenix Technologies LTD ver. 6.00 PG 2003/Apr/04
VIDEO & GRAPHICS Built-in SiS651 RADEON 9200 SE PCI
NETWORKING SiS900 NIC
AUDIO SiS 7012 Audio Device
USB 2.0 SUPPORT Four USB 2.0 ports, transfer rate up to 480Mbps.
Also supports full-speed (11Mbps) and low speed
(1.5Mbps) USB devices.
FIREWIRE IEEE-1394 Two 1394 ports

   When I clean-installed the Vista, its device manager gave me a yellow ! mark about SiS 7012 Audio Device. I was unable to find out the Windows Vista driver for it, finally I found it worked under the driver for Windows XP (x86) named a12112d.zip. Of course, I cleaned the fan and the CPU up before the OS installation.

   I set the power option High, turned Aero off, chose the lowest resolution (800×600) because the display is 17 inches. If I choose the lowest resolution at the living room display, we were unable to watch videos because the display is 50 inches. After this settings, it still gave me some freezes when I watched videos. At last, I gave up the driver for RADEON 9200 SE PCI and installed a Standard VGA Graphics Adapter driver. This made much improvement.

   Now I use KeyPaso in my bedroom. Very good!

Edit(Mar.19):
   I try to use a VL-17VS2, and I wrote a post about this. If you are interested in it, see here. “FUJITSU 30 pin display connector —>> DVI-D.

Edit(2014.Oct.16):
   After the MS Patch Tuesday of October, I suddenly had audio jumpiness on the KeyPaso, the driver was from a12112d.zip. Finally I have a clear sound again after installing very very old Avance AC’97 Drivers for SiS that I forgot to have it from where.

Power outage???

Update information      Edit(Dec.13)

   When I got up and was going to have my breakfast, the rice was Not ready. I wondered I forgot to set its timer, but the rice cooker was slightly warm. I think we had the unexpected power outage in the early morning. My rice cooker does not have the feature that it continues to cook after the power coming back.

   I turned on the rice cooker immediately.

   After breakfast, I found I was unable to access the Internet. I have no UPS, so my sever machine has been powered off since the outage happened (← Sorry, I didn’t find about my server down for a while). But, even if my server is down, I can access the Internet. I checked my broadband router. It could not return to the normal condition. I set it up again.

   Now(9:16a.m.), I made everything back. Happy!!

Edit(Dec.13):
   We had another power outage in the early morning. So my server was being down for about two hours before I had found it m(_”_)m.

   I heard the electric power company think they were small grounding faults. Something like between electric wires and trees. But, they tell they have not confirm the place the faults occurred, yet. Hence, I might have other outages at an early date (sigh).