 I'm Nikola Mitrovich. I come from Serbia from GoDaddy Velvet office. Initially, I was a part of customer happiness team, managed WP. I don't know if anyone knows what managed WP is, if anyone uses it. It's a WordPress management platform where you can add your signs, have them all in one place and manage it from that platform. Okay, sorry. If you don't hear me well, just say it. So I was part of the team that worked as customer happiness engineer. Basically, it's a customer support, but on a much higher level. After that, we teamed up with GoDaddy and I became a project coordinator. WordPress Academy in Serbia being one of the projects that I am product owner of. And I'm a WordPress enthusiast, obviously. I love working with WordPress. I work more than three years exclusively on WordPress. And I can say that I have quite a bit of experience in publishing websites. Why? Because that was my job. Basically, I probably fixed more websites than I created on my own. So I'm here to share my experience for you to be easier when you come to an issue with WordPress. How to, let's say, quickly resolve it. So my best friends, before I knew anything when I started at WordPress, was WordPress Codex, Development Handbook and my own experience through time. Why WordPress Codex and why Development Handbook? It's not so easy to find stuff there. It's written well, but not so easy if you have a problem to find anything there. But if you find a resolution on those two websites, those two knowledge bases, you know that it is by the rules, because those two websites are created by the WordPress community. And anything that you find there is right, the right way to do it. So basically, if you are not familiar with WordPress enough, just go there and go through the whole stuff there. So, okay, this is the topic of work in Bratislava. I find your lack of backup disturbing. And it suits nicely with my presentation, because if you have a problem with WordPress website, the most important thing is to have a backup. If anything happens to your website, if you have a good backup stored somewhere, you can easily restore a website and go on. The website will be fine. So, let's talk about WordPress debugging. You all had issues with WordPress websites, right? Let me see if someone had an issue with website broken for some reason. Okay, you know how disturbing it might be. So, there are two important things to know when debugging WordPress website. First, and in my opinion, the most important thing is to know how WordPress communicates with everything that's part of the machine. So, how WordPress communicates with teams, plugins. When you come across an issue, if you know what WordPress is looking for, you know that it cannot find it or it doesn't work properly and you know where to look for the culprit and resolve it. So, that's the most important thing. Learn how WordPress functions in its core. And the second important thing, WordPress has great troubleshooting tools. So, don't be afraid to use them. Yes, there will be some coded messages and it might be a bit harder to understand, but don't be afraid to use it because when you know, this is how you use it before I continue. So, the only thing that you need to do is open your WP config file on your server and turn the debug mode on. Once you do that, if your website has any issues, the error messages will be shown on your website. So, my recommendation is if you have a website that has a lot of traffic, don't do it when it's the time when you have most visitors. Do it overnight or do it on your local machine. Have a copy of your website and do it on your local machine and fix all the issues there. Because the error message will be shown and it can be a security issue because someone will see the page, your server, your files and it can be used to do bad things. So, once you have an error code that you might not understand, what should you do? Like, okay, I see what's wrong, but what should I do next? I'm not here to tell you this, but it's simple as that. Google it. Because there is a chance that you're not the first one who had the same issue. And verprese is strong and used oftenly because it has a very strong community. And it's almost certain that somebody had the same issue as you before and usually those guys share their issue and their resolution. So, don't be afraid to Google it and try it on your website. But obviously I'm not here to say, okay, use Google because everyone knows how to use Google. I'm here to just go through the common issues that you can come to when you use verprese regularly. So, you all know this issue, white screen of debt. Are you familiar with this? Can I see hands again? Anyone? Yeah, yeah. So, that's basically this is the only thing that you can do when you see white screen of debt. And why is that? Because this is what you see. And in most cases, when you turn on debugging mode in verprese, if you have white screen of debt, you cannot see the error message in most cases. Sometimes you can, but in most cases you cannot. So, you basically do not know what's bugging your website, what's the corporate, what's the issue. The best thing that can help you there is experience and Google again. So, what are the most common issues that cause white screen of debt? In my experience, the most common issue is team or plugin interference. So, that's the first thing. The second thing is exhaustive PHP memory. Even though this message, this thing is often shown as an error message on your website. That also can cause white screen of debt and you don't know that that's the thing that caused it. And the things that can cause it as well and much rarely than the first two are caching plugins. You can resolve the issue with caching plugins the same way you will resolve team or plugin interference and we'll go through that in a bit. The hosting server issues and you cannot do anything there except contact your hosting provider and tell them that you have an issue with your website and they should resolve it. And the last thing, issue with WordPress core files. That's a bit tricky. I usually resolve that with restoring my backup. I know that people try to just replace WordPress core files with the clean installation and they keep WP content folder and that sometimes works. Sometimes it can break even worse. So, it's not my recommendation to do it. My recommendation is have a backup, really. So, okay, let's see. When we have a team or plugin interference, you cannot... When you have a white screen of debt, you cannot get your website back end. And if you have a plugin interfering with your website, the first thing that you should do logically is to deactivate that plugin. And the website should be back live again. But you cannot get your back end and how to deactivate it. And this is where knowing how WordPress works come handy. Because if you know how WordPress searches for plugins and if you know how WordPress communicates with them, you will know that you can find all your plugins. If you have a regular WordPress installation, you can find all your plugins in WP content folder and plugins. So, that's where WordPress looks for all your plugins on your website. Just go to your server and do what? Just rename plugins folder to plugins.old, or whatever you want. Just don't let it be called plugins. And once you do that, WordPress will not find any plugins on your website. And automatically, all your plugins will be deactivated. If plugins were the problem, your website will be back live. It will not look at... It's supposed to look as you don't have plugins that will provide you with some core functionality for your website. But you will know that one of the plugins is the main issue and that's what's causing the widespread of that. Once you know that, what's next? Okay, rename the folder back to plugins and WordPress will know where to find your plugins again. But this time, all of the plugins will be deactivated. They will stay deactivated. WordPress will just find them again because you renamed it back to plugins. Once they are deactivated, you will be able to get your website back end. So you will be able to go to plugins page and do what? Logically, activate plugins one by one. When you do that, after activating plugins that cause the issue in the first place, the issue will reappear. Basically, you will know that the last plugin that you activated before the issue reappeared, that's the plugin that's causing the issue. So that's the way to resolve if you have a plugin interference. But what about teams? If you have a team interference, what do you think, what can you do? Do you do the same thing to rename the teams folder? No? Why? Yeah, that's right. So the first thing that you should know, you have to have at least two teams. WordPress has to have the backup team. If your team does not work, WordPress has to have a team to work. You don't have to have any plugins. Your website can work without plugins, but it cannot work without them. So basically, you cannot just rename the teams to teams.old, but you can do something else to replace the team that's currently active and potentially causing issues. You can go to phpmyadmin and get to your database, database that your website is using, find wpoptions table, and when you do that, change values for template and stylesheet to default 2017 team. If you don't have 2017 installed on your website, just use the other team that you have installed. But the main thing here is to change the team that's currently active and causing an issue. I'll show you how it looks. Just a sec. Okay, so you see here, option name, stylesheet, it's changed to 2017. You have to find the same row, but where option name is template, and change that to 2017 as well. And if your website is alive after that, the team was causing the issue. Now, when you find a plugin that's causing the issue and when you find a team that's causing the issue, there are three things that you can do. First thing, you can try to debug it yourself. For example, a revolution slider, anybody uses a revolution slider. I had a problem with that plugin with PHP 7. It was not compatible with PHP 7, so I had to find the part of the code where they are using arrays and just change it to be compatible with PHP 7. They of course changed that in the next version of the plugin. They fixed it by themselves, but I couldn't wait for them, so I fixed it myself. That's one thing to do, fix it yourself. But it can be... Sorry for my language of pain in the ass. You don't have to do that. The next thing that you can do, you can find another plugin that does the same thing and works well with your website. And the third thing that you can do, you can be free to contact the author of the plugin. It's great to tell someone that's investing their time and resources to create a plugin for you. It's great to tell them that they have an error and it's great to let them know that they should fix it. It's one of the things that you can do. It all means the same for the team. So you can find another team, but it's best to contact the author and let them know that their team is not working well for you. Okay, the next thing that it caused is PHP memory exhausted issue. Because I worked in customer happiness teams, so we had a lot of questions where we found out that PHP memory is exhausted and that's why the website is not working. And usually we get back an answer with a screenshot that, okay, I have enough storage on my server. Like I have 10 gigabytes and I only used 500 megabytes. The first thing that you should know, PHP memory is not a storage on your server. You can look at it as a RAM memory for your website. And whenever you activate another plugin or another team, it grabs a little bit of that memory and uses it. And it will come time when you have, for example, 512 megabytes of PHP memory. And when you activate the plugin, next plugin, and you go over that limit, your site will break. And it's not the plugin's fault. It's fault of all plugins collectively because each one of them takes a bit of that space and when you go out, your website is done. It will not work. So what you can do, the first thing, you can try to increase PHP memory limit in your WP config file. And it's a simple one line of code, define WP memory limit, and you put the number that you think that you need. If you have 256 megabytes, you just increase it to 512, et cetera, et cetera. If you have 500 megabytes, increase it to 1 gigabyte, et cetera. If the server allows WordPress to do that, your website will work again. But if not, you should try to find PHP in your file on your server. Not all servers have that possibility. So if you have a server that you manage yourself, you can find this file and change your memory limit like this. But if you cannot find this, be free to contact your hosting provider because they're the ones that should change it on their site. And your website will be back again. Okay, so now a bit about advanced stuff. In my opinion, yes, advanced, but it can be quite useful. I don't know if any one of you had to migrate a website. Yeah? Okay, great. Because it can be pained. You migrate websites when you change hosting provider or you have a template that you use to deploy a new website. For example, you often create eShops, eCommerce, and you have a template that you use oftenly. You will use that template to deploy your new website quickly and make some small changes for the new client. And you can use different tools for that, manage WP being one of them. So you can clone the website using tools that are mainly premium. I don't know if there is any free tool that does the job well, but there is always an option to do it for free by yourself. And there are a few things that can cause these issues when you try to migrate your website manually. First being timeouts when transferring files. If your website is big and your server destination server is not so well, it will timeout. And you won't be able to transfer the file seasonally. Second, and more often this happens, you will have troubles importing the database. If your database has, for example, one gigabyte in size, you will have issues importing that database because the connection will break. Basically, one gigabyte is a lot and the connection will break and you will not be able to import it. So your website will have all the necessary files, but not the database. And the third thing is changing URLs on the destination if the destination has another domain. So, you're really worried too much because all of those things can be overcome quite easily. How? Okay. First for server timeouts. When you have SSH access for both servers, you can basically use server bandwidth to reduce the time needed to transfer the files. And how do you do it? Using R-Sync. And this is stuff that I'm told that are advanced. I think that you don't have to have developer knowledge because I basically don't. I cannot say that I am an experienced developer. You don't have to have the developer knowledge to use all of those things. You only need one or two lines of code and the things will work. So, remote sync, you can use it by using your terminal and it's not scary at all. I'll show you how. So, open your terminal on your computer and the first thing that you need to do, you need to, if you have SSH access for your source server, you need to connect to that server. And this is how you do it. It's simple as that. Just put in SSH user from your server and host from your server and you'll be prompted to enter your password. Once you do, you will basically log in like using FileZilla or CyberDot. It's the same thing, just doing it from the terminal. Once you do that, just paste the following command. And that's it. Wait for magic to happen. Why? Because you say the server here, okay, I'm using our sync. I want the source folder and if you are in website route, the source folder is, for example, public HTML slash WordPress. If your source website is there, type public HTML slash WordPress here and this is the destination server. This is how you will let a computer know that it should connect to the destination server and transfer the files there. So user of the destination server, host of the destination server, and destination folder. If you want to transfer the files to public HTML as well, just type public HTML and that's it. Type enter. It will prompt you for destination server's password. If you have the correct password, it will transfer the files for you. This part here just tells them to do the things for you that you probably should do manually and this is the thing that reduces the time. Archive, zip. Z is for zip files when it should be transferred and after that you will extract the files on your destination server. This P stands for progress. You can track the progress of what's happening to see if it's on 50% or if it's done. And that's it. Once you do that, you get the files that you need on the destination. The next thing that you should do, you should import the database. If the database is quite big, you will have timeouts. And I find... Okay, you have a SQL file that you should import on the destination and I find this thing a live server. There is a script called pickdump. It's done by a guy that I don't know who he is and it's a free script. You can donate to him if you want, but it's a free script that you can use to transfer really large databases. I transferred the database that's 2.5 gigabytes with this script. How? It divides the SQL file into small pieces and it basically imports small chunks and restarts the process. So it doesn't let the server timeout. It restarts after every small chunk and it can take a while, but it will get the job done. So after that you have files, you have a database, your website is ready, except if you want to change the URL for the destination, if the first website is example.com and the second website is demo.com, you have to change the URLs in your database. How to do that? The first and easier way is to install on the destination searcher in Playblogging and use it to change the URLs. But it doesn't work always. So I added a... I call it advanced method, but it really isn't. It's quite easy. You can find the SQL query that you need to run on the Internet easily. You can copy it from my presentation as well. Just go to destination's PHP MyAdmin. Select the database. If you have a few databases there, select the database that you need and paste this SQL query into the SQL tab in the PHP MyAdmin. And I'll show you how it looks right now. So you select the database here and you have structure, SQL, search query, not important in SQL tab. Just paste the code and you'll see... Let me go back. You'll see that this is source.com, destination.com. So the only thing that you need to change is this. If your first website is example.com, change it here. If your destination is demo.com, change it here and run the query. And that's it. That should work fine for you. And my final recommendation, so we talked about debug mode to turn it on in WordPress. We talked about when plugin is causing an issue, okay, activate all plugins. So you will know if plugin is the faulty one. You will know that it's the issue and you will know which one is when activating plugins one by one. There is a plugin that can do all of that for you. It's called Hellcheck plugin. And in Hellcheck plugin you have all information about your website and about your server. So you will know with this plugin you will know what's your PHP memory limit. If you have 256 megabytes, you will know with this plugin. And you will know if that's the issue, okay, I will increase it to 512. Second great thing about this plugin is easy troubleshooting mode. If you enter troubleshooting mode with one click, the plugin will deactivate all plugins for you. It will activate in WP config troubleshooting mode. So you will be able to see the error by yourself and you can do all of that in two clicks. So you can do it manually, but this is my recommendation. It will save you a lot of time if you have a lot of issues with your websites. Do you have any questions? Nobody? Really? No questions at all? Okay. So that's it for me. Thanks a lot. This is my email. This is Twitter account. You can ping me whenever you want. I'm basically 24-7 available. I do answer during the night so you can send me an email whenever you want, whenever you have a problem or if you have any questions and I'll be sure to answer it as quickly as possible. Thank you.