Categories
WordPress

WordPress not auto saving all articles on my main site.

同一記事の日本語版
Update information      Edit(Sep.6)

   Recently the autosave feature wasn’t working well on o6asan.com though I cannot recall from when. o6asan’s soliloquy and o6asan’s soliloquy-part2 have no problem.

   Apart from this, I found a lot of “WordPress database error Duplicate entry ‘0’ for key ‘PRIMARY’ for query INSERT INTO `WordPress DB table name` ~” on the Apache error log when I checked the errors about php_opcache.dll on August 29.

   Yesterday, I suddenly remembered the errors on the Apache log, and began to get the solution. I saw a lot of sentences related to Notes when I looked into the log again. At the time, I first recognized this errors and autosave feature had a strong relationship. Besides, the errors began on August 23. I must have done something wrong at updating MariaDB. (-_-;)

   I saw what table names the log included, then found them out, i.e. `wp_postmeta`, `wp_posts`, `wp_redirection_logs`, `wp_sitemeta`. I logged in phpMyAdmin and compared wp_postmeta structure with wp_2_postmeta one. Because wp_2_postmeta has no problem. Finally I noticed wp_postmeta had no AUTO_INCREMENT in meta_id’s extra field. I also looked the rests had the same problem.

   First I backed all data up then tried and fixed them.

  1. Select wp_postmeta table.
  2. Select ‘Structure’ from Menu.
  3. Select ‘Change’ from Action of meta_id.
  4. Check ‘A_I’ box on and save.

   If you use CUI, I think you can use the following.
ALTER TABLE `your WP DB name`.`wp_postmeta` CHANGE `meta_id` `meta_id`
BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;

   I did this for `wp_postmeta` and `wp_posts` without difficulty. But for `wp_redirection_logs` and `wp_sitemeta`, I had the following error.
#1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry ‘1’ for key ‘PRIMARY’

   `wp_redirection_logs` table has just logs of the plugin Redirection. So I emptied the table and did the above steps again. If you use CUI, I think you can use the following.
TRUNCATE `your WP DB name`.`wp_redirection_logs`;

   But I need the contents of the table `wp_sitemeta`. So, I first emptied the table and did the above steps again. Then I clipped `wp_sitemeta` INSERT statement out from the back-up sql file and imported it to the table.

   The errors on the log file have gone and the autosave feature works well now. Mission complete!

   Don’t trust me too much because I handled the errors in my own fashion. m(_”_)m

Edit(Sep.6):
   When I updated to BulletProof Security .50.8, I had a trouble that the Notice “Network/Multisite BPS plugin Network Activation correction:” had not gone away. So, I went talk to the forum. Then I resolved the problem with his help. This trouble is related to the AUTO_INCREMENT missing again. I think it is maybe caused by phpMyAdmin bug that I read several days ago. But who knows about the truth? Sigh.

   Anyway, the Notice has gone. Now I can sleep in peace (^_^;).

Categories
Windows

Memorandum #6.

同一記事の日本語版

   I don’t know why but I’m very tired. I jot down for my memory.

   My server OS is Windows7 HP SP1 (x86).

  1. PHP 5.5.15 (php-5.5.15-Win32-VC11-x86.zip)
    —> PHP 5.5.16 (php-5.5.16-Win32-VC11-x86.zip)
  2. MariaDB 10.0.12 (mariadb-10.0.12-win32.zip)
    —> MariaDB 10.0.13 (mariadb-10.0.13-win32.zip)
  3. phpMyAdmin 4.2.7 (phpMyAdmin-4.2.7-english.zip)
    —> phpMyAdmin 4.2.7.1 (phpMyAdmin-4.2.7.1-english.zip)

   My guess tells me all of them are security releases. So I’ve dealt with them promptly.

Categories
Uncategorized

Inconvenient things.

同一記事の日本語版

   Recently, I had two inconvenient things. One is about IE11 on Windows7 and the other is about phpMyAdmin version on the service of WebCrow. Yes I know, these things aren’t grouped together because their levels are very different.

   The thing about IE11 on Windows7 is this (Credential authentication does not work if you paste credential information by using the Paste shortcut menu command in Windows 7 or in Windows Server 2008 R2). This looks one of the well-known issues. OK, I need not the Hotfix of KB2547752. OK, I can do CTRL+V or anything. But about the trouble the most frustrating for me is IE11 on Windows7 shows me ‘●●●●●●●●●●’ as if the procedure is normally ended when I use a right click and paste. ‘Don’t Use the Paste shortcut menu command’ is an old story, so itself is no problem. But if it’s requested, they should not make IE show ‘●●●●●●●●●●’. Grrr.

   The other is phpMyAdmin version is 2.11.x.x on WebCrow. This version does not have Configuration storage, so I cannot use the feature bookmarks. Very inconvenient! I realize I am dependent on the feature everyday life, ha-ha-ha.

Categories
Windows

phpMyAdmin Configuration storage.

同一記事の日本語版
Update information      Edit(Jul.5)    Edit2(Jul.9)

   phpMyAdmin has an infrastructure named Configuration storage since version 3.4.2. Logging in phpMyAdmin at the first time, you have the message “The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.” because this is deactivated by default. When activated, you can use features like bookmarks, comments, SQL history, relations, PDF schema, and MIME transformations. For me, bookmarks feature is convenient. Well, I’m going to write how to activate it.
   By the way, when we install phpMyAdmin on our servers, we must consider a lot of things for secure. But I don’t write about it here. Please read Official Documentation and take full responsibility for your actions.

   At the very first time for activating this, you need to take the following three steps.

  1. Create a user and its database by create_tables.sql in MySQL.
  2. Make the above user to a control user
  3. Customize your config.inc.php.

   Now, I’ll start.

  1. Open the file create_tables.sql by a text editor and uncomment the next two lines.
    ————
    GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
    ‘pma’@localhost;
    ————

    Log in your phpMyAdmin as a root and import the create_tables.sql. After that you have a database phpmyadmin and a user pma with no password.

    Note) In my opinion, you’d better change the names of database and user to other unique names because there are a lot of mal-attacks given clues by them. Editing the create_tables.sql before your import can makes this easy and possible.

  2. Input following statements from the phpMyAdmin SQL Query window.
    ————
    GRANT USAGE ON mysql.* TO ‘pma’@’localhost’ IDENTIFIED BY ‘pmapass’;
    GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO ‘pma’@’localhost’;
    GRANT SELECT ON mysql.db TO ‘pma’@’localhost’;
    GRANT SELECT ON mysql.host TO ‘pma’@’localhost’;
    GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO ‘pma’@’localhost’;
    ————
    Of course, you should change ‘pmapass’ to ‘your proper controluser password’. If you use your pmadb database name and a controluser name instead of phpmyadmin and pma, you also need to edit them.
     
    Log out your phpMyAdmin.
  3. Open your config.inc.php and uncomment the following twenty lines. If you use your pmadb database name and a controluser name instead of phpmyadmin and pma, you also need to edit them. Of course, about pmapass.
    ————
    /*
    * phpMyAdmin configuration storage settings.
    */

    /* User used to manipulate with storage */
    // $cfg[‘Servers’][$i][‘controlhost’] = ”; ⇐It’s need or not depends on your environment.
    // $cfg[‘Servers’][$i][‘controlport’] = ”; ⇐It’s need or not depends on your environment.
    $cfg[‘Servers’][$i][‘controluser’] = ‘pma’;
    $cfg[‘Servers’][$i][‘controlpass’] = ‘pmapass’;

    /* Storage database and tables */
    $cfg[‘Servers’][$i][‘pmadb’] = ‘phpmyadmin’;
    $cfg[‘Servers’][$i][‘bookmarktable’] = ‘pma__bookmark’;
    $cfg[‘Servers’][$i][‘relation’] = ‘pma__relation’;
    $cfg[‘Servers’][$i][‘table_info’] = ‘pma__table_info’;
    $cfg[‘Servers’][$i][‘table_coords’] = ‘pma__table_coords’;
    $cfg[‘Servers’][$i][‘pdf_pages’] = ‘pma__pdf_pages’;
    $cfg[‘Servers’][$i][‘column_info’] = ‘pma__column_info’;
    $cfg[‘Servers’][$i][‘history’] = ‘pma__history’;
    $cfg[‘Servers’][$i][‘table_uiprefs’] = ‘pma__table_uiprefs’;
    $cfg[‘Servers’][$i][‘tracking’] = ‘pma__tracking’;
    $cfg[‘Servers’][$i][‘designer_coords’] = ‘pma__designer_coords’;
    $cfg[‘Servers’][$i][‘userconfig’] = ‘pma__userconfig’;
    $cfg[‘Servers’][$i][‘recent’] = ‘pma__recent’;
    $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
    $cfg[‘Servers’][$i][‘users’] = ‘pma__users’;
    $cfg[‘Servers’][$i][‘usergroups’] = ‘pma__usergroups’;
    $cfg[‘Servers’][$i][‘navigationhiding’] = ‘pma__navigationhiding’;
    $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;
    ————

    Log in your phpMyAdmin again.

    You don’t have the message “The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.” anymore.

   That’s it!

   You can use phpMyAdmin configuration storage features now.

Edit(Jul.5):
   I forgot to write.
   At upgrades, you simply re-import the new create_tables.sql file after backing up your database, importing the file will not overwrite existing data, but will create any new tables. After that, you maybe need to edit your config.inc.php file.
   You already have your control user, so you must not uncomment the lines in the create_tables.sql file. You also keep in mind about your pmadb database name and a controluser name instead of phpmyadmin and pma.

Edit2(Jul.9):
   When I wrote the reply for くりくりさん, I suddenly thought I am scared of 1. and 2. having the time lag. My sql server doesn’t have the open port to the Internet and it has the only one user, me! So, I might have no need for such nerve. But if you have much busier server than mine, such a server has more occasion that is attacked by someone. The time lag gives attackers that they penetrate your server as the new pma with no password. This I am scared!!

   Well, at first make a controluser with password and give it the privileges. After that, import the file create_tables.sql. My guess is this is better.

   Anyway, I’ll write my controluser current privileges:
————
GRANT USAGE ON *.* TO ‘pma’@’localhost’ IDENTIFIED BY PASSWORD ‘pmapass’;
GRANT SELECT, INSERT, UPDATE, DELETE ON pma_main.* TO ‘pma’@’localhost’;
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO ‘pma’@’localhost’;
GRANT SELECT ON mysql.db TO ‘pma’@’localhost’;
GRANT SELECT ON mysql.host TO ‘pma’@’localhost’;
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO ‘pma’@’localhost’;
————

Categories
Windows

How to see MySQL server status by phpMyAdmin.

同一記事の日本語版
Fig.01 Status Monitor
Fig.01 Status Monitor

   The topic “How to see MySQL log by phpMyAdmin” came up on TODOS・何でも情報交換(Japanese). I checked out this and am going to write what I understood about this.
 
   If you use phpMyAdmin 4.0(maybe) or later, you can audit a status of MySQL servers by phpMyAdmin Monitor. When you log in your phpMyAdmin and go to Status > Monitor, you can reach the graphs. If your server works normal, I think the graphs are enough for you. However, if you need more information, you can refer a slow_query_log or a general_log there.

Fig.02 Disabled
Fig.02 disabled

When you click “Instructions/Setup” at the Monitor page and have the following messages(Also see Fig.02), you have to set xxx_log to ‘ON’ and log_output to ‘TABLE’.
   slow_query_log and general_log are disabled.
   log_output is not set to TABLE.
 
   If you have enough privileges as a MySQL user, you can set the values by yourself. If not, you have to ask your system administrator. In most case only root users can set the values, if not such server circumstances are very dangerous, I bet.
   Your Server works, then I think you don’t need the general_log of your server but the slow_query_log. If you set them by yourself, you need to log in your MySQL as a root at any rate. If you can log in it as a root…
 
  To use command line interface:
   SET GLOBAL slow_query_log = ON;
   SET GLOBAL log_output= TABLE;

 
  To use phpMyAdmin:
   1.Select Variables on Menu with no database.
    Input “slow query log” to the filter form and edit the value to ‘ON’
    Save
   2.Input “log output” to the filter form and edit the value to ‘TABLE’
    Save
 
   Log out as the root.

Fig.03 Enabled
Fig.03 Enabled


   Now you can use a “slow_query_log” from the Monitor of phpMyAdmin, when you log in as a root.
 
   By the way, when you restart mysqld, these settings have gone. If you want to stay the settings eternal, you should add the following lines to my.ini/my.cnf’s [mysqld] area.
   slow_query_log = ON
   log_output = TABLE
 
   As above, you can use a “slow_query_log” from the Monitor of phpMyAdmin as a root. However, this is less convenient. Don’t you think you’ll safely use it by a WordPress MySQL account? I think so, too. I asked くりくりさん on TODOS・何でも情報交換 “What privileges should I give a normal user who can use this feature?” He told me “It’s OK only for the database”.
   The slow_log table exists on the mysql database. So I did the following command.
 
   GRANT SELECT (lock_time, start_time, rows_examined, db, rows_sent, query_time, sql_text, user_host) ON mysql.slow_log TO ‘WP-user’@’localhost’;
 
   This is very limited privileges, so I think it’s acceptable.
 
   At this time, my WordPress MySQL account has the following privileges.
————
GRANT USAGE ON *.* TO ‘WP-user’@’localhost’ IDENTIFIED BY ‘passphrase’;
GRANT ALL PRIVILEGES ON WPdatabase.* TO ‘WP-user’@’localhost’;
GRANT SELECT (lock_time, start_time, rows_examined, db, rows_sent, query_time, sql_text, user_host) ON mysql.slow_log TO ‘WP-user’@’localhost’;
————

Categories
Uncategorized

phpMyAdmin 4.2.0 is released.

同一記事の日本語版

   phpMyAdmin 4.2.0 is released. Here is the ChangeLog. I’ve updated.

   I downloaded a phpMyAdmin-4.2.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(=Ver.4.1.x), I found two lines were lost and seven lines were added.
   The lost lines.
    At /* First server */ area
     /* Select mysql if your server does not have mysqli */
     $cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
   Does this mean they don’t support mysql modules anymore? (I noticed ‘Added warning about the mysql extension being deprecated and removed the extension directive’ in the ChangeLog.)

   The added lines.
    At /* Storage database and tables */ area
     // $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
     // $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;

    As a new parameter of the configuration
     /**
     * Whether to display icons or text or both icons and text in table row
     * action segment. Value can be either of ‘icons’, ‘text’ or ‘both’.
     */
     //$cfg[‘RowActionType’] = ‘both’;

   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][‘savedsearches’] … not OK [ Documentation ]
     Saving Query-By-Example searches: 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 two tables manually. Then, I edited nine lines above in my config.inc.php, and removed “//” from the head of the next lines.
     $cfg[‘Servers’][$i][‘favorite’] = ‘pma__favorite’;
     $cfg[‘Servers’][$i][‘savedsearches’] = ‘pma__savedsearches’;

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

Categories
Uncategorized

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.

Categories
Windows

To create a Wamp-like Web Server in Windows7-#3.

同一記事の日本語版

   Continued from my last post.

The installation of MySQL 5.6.

  1. Download mysql-5.6.12-win32.zip.
  2. Extract the Zip archive.
  3. Make the directory ‘MySQL’ in Drive_SV (A partition for server wares I made), then, install the directories and files to the MySQL. You can install all of extracted things. But, I only installed the next 5 directories and 2 files because I do not use others on my server by remote.
    • directories
      bin
      data
      include
      lib
      share
    • files
      COPYING
      my.ini  <—   Copy of the my-default.ini.
  4. Customize the my.ini file. (See Creating an Option File)
    # basedir = …..  —>  basedir = Drive_SV:/MySQL   (*) not a backslash() but a slash(/).
    # datadir = …..  —>  datadir = Drive_SV:/MyDATA
    Add the next line.
    explicit_defaults_for_timestamp = true
  5. Move the data directory (Current location:Drive_SV:MySQLdata) to Drive_SV: and rename to MyDATA.
  6. Run a cmd.exe as an Administrator.
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqld –console    (See Starting the Server for the First Time)

    2013-07-30 08:22:26 3484 [Note] Plugin ‘FEDERATED’ is disabled.
    ・                 ・
    ・                 ・
    2013-07-30 08:22:27 3484 [Warning] No existing UUID has been found, …………
    ・                 ・
    ・                 ・
    2013-07-30 08:22:27 3484 [Note] mysqld: ready for connections.
    Version: ‘5.6.12’ socket: ” port: 3306 MySQL Community Server (GPL)

    If you have other errors or warnings, customize the my.ini again. If having an alert about the port 3306 from Windows Firewall, you may accept it.

    Run another cmd.exe as an Administrator.
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqladmin -u root shutdown

  7. Run a cmd.exe as an Administrator.
    >Drive_SV:
    >cd Drive_SV:MySQLbin
    >mysqld.exe –install
  8. Control Panel >> Administrative tools >> Services
    Select the MySQL Service name and start
    If its ‘Startup Type’ is not ‘Automatic’, you have to change it to ‘Automatic’.
  9. Add the directory Drive_SV:MySQLbin to the Path.Change root password.

    Run a cmd.exe as an Administrator.
    >mysql -u root
    >SET PASSWORD FOR root@localhost=PASSWORD(‘password’);
    > quit

    Logon check.
    >mysql -u root -p
    Enter password: ************
    > quit

The installation of phpMyAdmin4.

  1. Download phpMyAdmin-4.0.4.2-english.zip.
    Extract the Zip archive.
  2. Rename the directory phpMyAdmin-4.0.4.2-english to phpMyAdmin.
    Remove the config.sample.inc.php in the extracted files.
    Remove three directorates: doc, examples, and setup.
    Copy my old config.inc.php in the phpMyAdmin. (If you don’t have an old config.inc.php, see Quick Install.)

    Move the phpMyAdmin to Drive_SV.

  3. Make an extra conf file as phpMyAdmin.conf in Drive_SV:Apache24confextra.
    The text of phpMyAdmin.conf:
    Alias /phpMyAdmin “Drive_SV:/phpMyAdmin/”

    <Directory “Drive_SV:/phpMyAdmin”>
    Options None
    AllowOverride None
    Require ip Lan IP range.
    </Directory>
    <Directory “Drive_SV:/phpMyAdmin/libraries”>
    Require all denied
    </Directory>

    Customize the httpd.conf (Location:Apache24conf).
    Add the next two lines to at the end of the Supplemental configuration section:
    # phpMyAdmin settings
    Include conf/extra/phpMyAdmin.conf

  4. Restart Apache.
    Access http://xxx.xxx.xxx.xxx/phpMyAdmin

    Username: root
    Password: MySQL root password

    I have the caution:
    The phpMyAdmin configuration storage is not completely configured,
    some extended features have been deactivated. To find out why click here.

    So, to configure the phpMyAdmin configuration storage, I import my old database phpmyadmin. (If you don’t have an old database phpmyadmin, see phpMyAdmin configuration storage.)

  5. Log out, and log in. The caution has gone.
  6. Delete all users except root@localhost.Make a user(WP-User) and a database(WPdatabase) for the WordPress.
    WP-user was given all Global privileges except Grant. WP-user was given no Global privileges and was given all WPdatabase privileges except Grant. Their collation is utf8_general_ci.
  7. Log out.